opensrp / fhircore

FHIR Core / OpenSRP 2 is a Kotlin application for delivering offline-capable, mobile-first healthcare project implementations from local community to national and international scale using FHIR and WHO Smart Guidelines on Android.
https://smartregister.org
Apache License 2.0
53 stars 41 forks source link

Harmonize launching Questionnaire #2180

Closed FikriMilano closed 1 year ago

FikriMilano commented 1 year ago

Describe the feature request. Use the same Questionnaire mechanism that is used by ProfileViewModel in other code places that launch a Questionnaire.

Additional context The new Questionnaire mechanism is to:

  1. Maps QR from DB, or else
  2. Maps QR from population
  3. Before launching Questionnaire, do validation for Questionnaire and QR

Acceptance criteria

FikriMilano commented 1 year ago

FYI @f-odhiambo

FikriMilano commented 1 year ago

idea was founded during the development of https://github.com/opensrp/fhircore/pull/2173

FikriMilano commented 1 year ago

Requirements: All methods that launch a Questionnaire must have:

Check the usage of QuestionnaireHandler.launchQuestionnaire() to find all classes that launch a Questionnaire

FikriMilano commented 1 year ago

@f-odhiambo you can assign this to me

ekigamba commented 1 year ago

The populate functionality needs to be called so that the initialExpression s are evaluated. The initialExpression depends on populate() as per the spec http://build.fhir.org/ig/HL7/sdc/populate.html#expression-based-population and http://build.fhir.org/ig/HL7/sdc/expressions.html#initialExpression.

Results on this issue https://github.com/google/android-fhir/issues/1995

  1. So the current functionality only calls populate if there's no QR in the db for the questionnaire. So currently the QR you are seeing is what was filled in during registration for Edit Patient
  2. The Family Member > Register With Disease form does not populate because it's type is DEFAULT. The current code only allows population for non-DEFAULT questionnaireConfig types
  3. If the QR is set to null, so that populate is called. The expressions for edit registration work OK. Well, the age expression needs some work

Screenshot_2023-05-04-13-54-07-85_234600bf3915f353716ac6a6c7517e8a

Screenshot_2023-05-04-13-54-29-71_234600bf3915f353716ac6a6c7517e8a

cc @dubdabasoduba @FikriMilano

Solutions

  1. Change the questionnaire type for the Register with disease to allow population
  2. Start another discussion on editting questionnaires or review the previous discussion to decide how the new requirements affect the previous decision and strategy. This solves the issue on edit registration not rendering the patient age
FikriMilano commented 1 year ago

@ekigamba Thanks for the additional comment, this is very useful :D

dubdabasoduba commented 1 year ago

Here is the QR generated

{"resourceType":"QuestionnaireResponse","id":"cc59591c-df38-429a-b98a-ad7c88da5e67","meta":{"lastUpdated":"2023-05-08T11:39:58.127+00:00","tag":[{"system":"urn:oid:2.16.578.1.12.4.1.1.8655","display":"eCBIS Sick Child Registration form (Over 2 Months)"},{"system":"urn:oid:2.16.578.1.12.4.1.1.8655","display":"eCBIS Sick Child Registration form (Over 2 Months)"},{"system":"https://smartregister.org/","code":"75e73b3e-3978-4766-af9b-cb8c644e9b74","display":"Practitioner CareTeam"},{"system":"https://smartregister.org/","code":"7f5f7557-5beb-492d-a2ed-086e0b29bc8f","display":"Practitioner Location"},{"system":"https://smartregister.org/","code":"8348630b-527f-421e-9584-7d7c1c828051","display":"Practitioner Organization"},{"system":"https://smartregister.org/","code":"f70d61d7-35bd-437a-9efb-13bcf611fa4b","display":"Practitioner"}]},"contained":[{"resourceType":"Condition","id":"3fde4aad-1910-48ac-8061-2f238b38242d","meta":{"tag":[{"system":"https://smartregister.org/","code":"0.2.3-ecbis","display":"Application Version"},{"system":"https://smartregister.org/","code":"0.2.3-ecbis","display":"Application Version"},{"system":"https://smartregister.org/","code":"75e73b3e-3978-4766-af9b-cb8c644e9b74","display":"Practitioner CareTeam"},{"system":"https://smartregister.org/","code":"7f5f7557-5beb-492d-a2ed-086e0b29bc8f","display":"Practitioner Location"},{"system":"https://smartregister.org/","code":"8348630b-527f-421e-9584-7d7c1c828051","display":"Practitioner Organization"},{"system":"https://smartregister.org/","code":"f70d61d7-35bd-437a-9efb-13bcf611fa4b","display":"Practitioner"}]},"clinicalStatus":{"coding":[{"system":"http://terminology.hl7.org/CodeSystem/condition-clinical","code":"active"}]},"verificationStatus":{"coding":[{"system":"http://terminology.hl7.org/CodeSystem/condition-ver-status","code":"confirmed"}]},"category":[{"coding":[{"system":"http://terminology.hl7.org/CodeSystem/condition-category","code":"problem-list-item"}]}],"code":{"coding":[{"system":"http://snomed.info/sct","code":"275142008","display":"Sick Child"}],"text":"Sick Child"},"subject":{"reference":"Patient/f40f252d-fa82-4a0a-9f0e-15bcce88ea8c"},"onsetDateTime":"2023-05-08T11:39:57+00:00","recordedDate":"2023-05-08T11:39:57+00:00"},{"resourceType":"Encounter","id":"5b363392-3fc2-442d-8311-f17d11cd3f26","meta":{"tag":[{"system":"https://smartregister.org/","code":"0.2.3-ecbis","display":"Application Version"},{"system":"https://smartregister.org/","code":"0.2.3-ecbis","display":"Application Version"},{"system":"https://smartregister.org/","code":"75e73b3e-3978-4766-af9b-cb8c644e9b74","display":"Practitioner CareTeam"},{"system":"https://smartregister.org/","code":"7f5f7557-5beb-492d-a2ed-086e0b29bc8f","display":"Practitioner Location"},{"system":"https://smartregister.org/","code":"8348630b-527f-421e-9584-7d7c1c828051","display":"Practitioner Organization"},{"system":"https://smartregister.org/","code":"f70d61d7-35bd-437a-9efb-13bcf611fa4b","display":"Practitioner"}]},"status":"finished","class":{"system":"http://terminology.hl7.org/CodeSystem/v3-ActCode","code":"HH"},"type":[{"coding":[{"system":"http://snomed.info/sct","code":"77386006","display":"Consultation"}],"text":"Consultation"}],"priority":{"coding":[{"system":"http://snomed.info/sct","code":"17621005","display":"Normal"}],"text":"Normal"},"subject":{"reference":"Patient/f40f252d-fa82-4a0a-9f0e-15bcce88ea8c"},"participant":[{"individual":{"reference":"Practitioner/f70d61d7-35bd-437a-9efb-13bcf611fa4b"}}],"period":{"start":"2023-05-08T11:39:57+00:00","end":"2023-05-08T11:39:57+00:00"},"reasonCode":[{"coding":[{"system":"http://smartregsiter.org/","code":"sick_child_registration","display":"eCBIS Sick Child Registration"}],"text":"eCBIS Sick Child Registration"}],"serviceProvider":{"reference":"Organization/8348630b-527f-421e-9584-7d7c1c828051"}}],"questionnaire":"Questionnaire/3276f55c-b25e-455b-ae4e-8846fb8fd039","status":"completed","subject":{"reference":"Patient/f40f252d-fa82-4a0a-9f0e-15bcce88ea8c"},"authored":"2023-05-08T11:39:56+00:00","item":[{"linkId":"c39d5f0e-6410-11ed-81ce-0242ac120002","text":"Sick Child Registration","item":[{"linkId":"9af686f7-8fc7-4ef8-815b-99bd4ea5bb79","text":"Child Age"},{"linkId":"17cd35ef-a107-4747-84c1-b686a6f6aaea","text":"Is this an active or passive case finding?","answer":[{"valueCoding":{"id":"d4352004-4708-4210-a697-811cfd663978","system":"urn:uuid:c171913a-ae44-4bd9-a027-1b935a01b8c1","code":"active","display":"Active"}}]},{"linkId":"ba8ac52f-7fc2-4ab9-9e67-ee4473c57b48","text":"How is the child?","answer":[{"valueCoding":{"id":"a5e734d2-f542-4d9a-8453-a8dd2d62f591","system":"urn:uuid:407a6758-24c6-420c-f41d-cc8ca4dbc4c4","code":"sick","display":"Not well, has sick symptoms"}}]}]},{"linkId":"ac53064c-6405-11ed-81ce-0242ac120002","text":"Identify Problems","item":[{"linkId":"cf0093a9-1e38-422b-fc81-273caa0bb48a","text":"Child has a cough?","answer":[{"valueCoding":{"id":"eb976bac-c680-423b-cdd5-9740ac8268d4","system":"urn:uuid:d3051c21-8668-412e-a2dd-105cf274b260","code":"yes","display":"Yes"}}]},{"linkId":"3ebb1e6d-237d-4b1e-edf3-dda25cb53891","text":"How many days child coughing?","answer":[{"valueCoding":{"id":"a778cf91-7361-4392-8493-81affbf4a753","system":"urn:uuid:7690c680-5247-457e-d68f-d65f5b40d6c7","code":"14_or_more_days","display":"14+ days"}}]},{"linkId":"94357450-e603-49f7-899c-464ecd10ddd1","text":"Child has a running stomach?","answer":[{"valueCoding":{"id":"e55a53f6-f763-4893-8313-e9ac7a1b8037","system":"urn:uuid:4ae66618-142d-4e2c-dd66-5d63c14b83a9","code":"no","display":"No"}}]},{"linkId":"14648d8c-c88f-40be-9f25-66d7ba621482","text":"Child has fever?","answer":[{"valueCoding":{"id":"cd363c0f-ca7c-4f78-976c-88f091d88c4e","system":"urn:uuid:08516020-d926-4463-863e-d6f45b0d317b","code":"no","display":"No"}}]}]},{"linkId":"aa1fac6a-6408-11ed-81ce-0242ac120002","text":"Danger Signs","item":[{"linkId":"509e25f2-fb63-4486-84a4-eff6e7cd184f","text":"Check for child danger signs","answer":[{"valueCoding":{"id":"7636a921-4102-4a71-8b52-08e646f88aa3","system":"urn:uuid:e5b0126c-0615-4750-a239-519e172bf4d8","code":"cough_more_than_14_days","display":"Cough more than 14 days"}},{"valueCoding":{"id":"e6b45326-a167-45a5-9477-5b3e79804450","system":"urn:uuid:e5b0126c-0615-4750-a239-519e172bf4d8","code":"very_sleepy_unconscious","display":"Very sleepy/unconscious"}}]}]},{"linkId":"e4efcd20-6408-11ed-81ce-0242ac120002","text":"Pre-referral Treatment","item":[{"linkId":"254fe48e-dd6c-4428-b59c-10c8079dc8d5","text":"Stock Balance - Amoxicillin 250mg - 1 tablet (Pre-populated) (Hidden)"},{"linkId":"19f9be52-cce5-442a-9f87-d6894a57b6ff","text":"Latest Observation ID - Amoxicillin 250mg - 1 tablet (Pre-populated) (Hidden)"},{"linkId":"829c3eff-4903-4123-b21c-e4f613c1f01d","text":"Stockout Flag ID - Amoxicillin 250mg - 1 tablet (Pre-populated) (Hidden)"},{"linkId":"7be1c8e4-e7d0-445b-8a71-d600263a0063","text":"Stock Balance - Amoxicilin 250mg-2 tablets. Amoxicillin 250mg (Pre-populated) (Hidden)"},{"linkId":"7f1b86c6-313b-42a3-ae77-541cae12b27e","text":"Latest Observation ID - Amoxicilin 250mg-2 tablets. Amoxicillin 250mg (Pre-populated) (Hidden)"},{"linkId":"32eebd31-8edc-43eb-a620-d4a30b33bc52","text":"Stockout Flag ID - Amoxicilin 250mg-2 tablets. Amoxicillin 250mg (Pre-populated) (Hidden)"},{"linkId":"216147dd-72fa-43eb-811f-bd8bb0e9f26c","text":"Stock Balance - 1 sachet/ litre of ORS (Pre-populated) (Hidden)"},{"linkId":"8afce0d8-a7cc-4454-9534-289c6ceb97f0","text":"Latest Observation ID - 1 sachet/ litre of ORS (Pre-populated) (Hidden)"},{"linkId":"9ce85751-8403-49fd-b1b1-552449cf252b","text":"Stockout Flag ID - 1 sachet/ litre of ORS (Pre-populated) (Hidden)"},{"linkId":"ec66a7cc-d1f6-4d5e-b161-61eb61c2922e","text":"Stock Balance - Artersunate suppository 100mg- 1 tablet. Artersunate suppository 100mg (Pre-populated) (Hidden)"},{"linkId":"cb032c71-465b-43d1-aeef-efe7241f22bb","text":"Latest Observation ID - Artersunate suppository 100mg- 1 tablet. Artersunate suppository 100mg (Pre-populated) (Hidden)"},{"linkId":"6b1ed271-28a8-4dc2-8521-f3498befc981","text":"Stockout Flag ID - Artersunate suppository 100mg- 1 tablet. Artersunate suppository 100mg (Pre-populated) (Hidden)"},{"linkId":"8b404865-2651-4ba6-8b4d-c2de0aae55f6","text":"Stock Balance - Artersunate suppository 100mg- 2 tablets. Artersunate suppository 100mg (Pre-populated) (Hidden)"},{"linkId":"caf9de81-51ca-4f4c-a523-b862f1ef22ef","text":"Latest Observation ID - Artersunate suppository 100mg- 2 tablets. Artersunate suppository 100mg (Pre-populated) (Hidden)"},{"linkId":"30ca82bd-bd6e-4b14-931d-0b6d79db5350","text":"Stockout Flag ID - Artersunate suppository 100mg- 2 tablets. Artersunate suppository 100mg (Pre-populated) (Hidden)"},{"linkId":"652a752f-280a-4560-aac8-fa3196449961","text":"Stock Balance - AL: Artemether 20mg + Lumefatrine 120mg (1x6) tablets(2-11 months) (Pre-populated) (Hidden)"},{"linkId":"439f2e15-5426-4b5c-9ab7-e3d3e323af1f","text":"Latest Observation ID - AL: Artemether 20mg + Lumefatrine 120mg (1x6) tablets(2-11 months) (Pre-populated) (Hidden)"},{"linkId":"22524dbf-2aeb-4599-8cf4-160a237db060","text":"Stockout Flag ID - AL: Artemether 20mg + Lumefatrine 120mg (1x6) tablets(2-11 months) (Pre-populated) (Hidden)"},{"linkId":"f03c4d81-76be-4d07-a772-6d5f19d32c93","text":"Stock Balance - ASAQ: AS (25mg) + AQ (67.5mg) ( 2-11months) tablet (Pre-populated) (Hidden)"},{"linkId":"40594c41-914c-4c12-a44e-59eb410977e4","text":"Latest Observation ID - ASAQ: AS (25mg) + AQ (67.5mg) ( 2-11months) tablet (Pre-populated) (Hidden)"},{"linkId":"8c4de538-0a38-465d-b547-e8543fbf1dfd","text":"Stockout Flag ID - ASAQ: AS (25mg) + AQ (67.5mg) ( 2-11months) tablet (Pre-populated) (Hidden)"},{"linkId":"688e8eeb-068b-40d7-97a2-ac434855ee4f","text":"Stock Balance - AL: Artemether 20mg + Lumefatrine 120mg (2x6) tablets(1-5 years) (Pre-populated) (Hidden)"},{"linkId":"504a53e3-15d2-4208-ac59-75df250ebe6c","text":"Latest Observation ID - AL: Artemether 20mg + Lumefatrine 120mg (2x6) tablets(1-5 years) (Pre-populated) (Hidden)"},{"linkId":"8158103d-fa91-403f-a5ce-d3fb21412c3f","text":"Stockout Flag ID - AL: Artemether 20mg + Lumefatrine 120mg (2x6) tablets(1-5 years) (Pre-populated) (Hidden)"},{"linkId":"11537bd0-134c-4179-8b55-fbedc876e413","text":"Stock Balance - ASAQ: AS (50mg) + AQ (135mg) ( 1-5years) tablet (Pre-populated) (Hidden)"},{"linkId":"40ba4471-3ba5-4f1c-ac35-53cf42b71565","text":"Latest Observation ID - ASAQ: AS (50mg) + AQ (135mg) ( 1-5years) tablet (Pre-populated) (Hidden)"},{"linkId":"fd124836-5be2-4692-aa19-fdd4f0537cf6","text":"Stockout Flag ID - ASAQ: AS (50mg) + AQ (135mg) ( 1-5years) tablet (Pre-populated) (Hidden)"}]},{"linkId":"abf5514a-6410-11ed-81ce-0242ac120002","text":"Assess, Classify & Treat","item":[{"linkId":"71e7a42c-00a8-467f-bb05-43d0078d5af8","text":"Stock Balance - Amoxicilin 250mg- 1 tablet. Amoxicillin 250mg (Pre-populated) (Hidden)"},{"linkId":"8241e4ac-db83-49a4-bdb7-95fc6c5a2110","text":"Latest Observation ID - Amoxicilin 250mg- 1 tablet. Amoxicillin 250mg (Pre-populated) (Hidden)"},{"linkId":"810e0b66-7fdf-4c74-bba9-25286dbfb9dc","text":"Stockout Flag ID - Amoxicilin 250mg- 1 tablet. Amoxicillin 250mg (Pre-populated) (Hidden)"},{"linkId":"49c80c12-65e1-44ea-844b-0da9af87e6a6","text":"Stock Balance - Amoxicilin 250mg- 2 tablets. Amoxicillin 250mg (Pre-populated) (Hidden)"},{"linkId":"b3105315-2045-455a-8709-4b74b29f714b","text":"Latest Observation ID - Amoxicilin 250mg- 2 tablets. Amoxicillin 250mg (Pre-populated) (Hidden)"},{"linkId":"80859bac-05cf-4087-8689-d8b1b6614f99","text":"Stockout Flag ID - Amoxicilin 250mg- 2 tablets. Amoxicillin 250mg (Pre-populated) (Hidden)"},{"linkId":"206c5a5b-dc64-41cb-97a3-d6aa262f5ccf","text":"Stock Balance - 3 sachets of (ORS) Oral Rehydration Salt 20.5g/L (Pre-populated) (Hidden)"},{"linkId":"1e96f619-32b4-4b54-8635-8a263f01f74d","text":"Latest Observation ID - 3 sachets of (ORS) Oral Rehydration Salt 20.5g/L (Pre-populated) (Hidden)"},{"linkId":"1b63f92e-c48b-468a-ab53-d7db5d423b99","text":"Stockout Flag ID - 3 sachets of (ORS) Oral Rehydration Salt 20.5g/L (Pre-populated) (Hidden)"},{"linkId":"3f189686-0af2-44ec-bcf8-a6cfa42c553f","text":"Stock Balance - 10 tablets of 10mg ZINC (Pre-populated) (Hidden)"},{"linkId":"13cda66b-0a66-4708-983a-4fd193471a1d","text":"Latest Observation ID - 10 tablets of 10mg ZINC (Pre-populated) (Hidden)"},{"linkId":"50ae608c-f3d9-4324-8866-c29459083df9","text":"Stockout Flag ID - 10 tablets of 10mg ZINC (Pre-populated) (Hidden)"},{"linkId":"927f0a45-2e37-4f8b-8608-005b266ca961","text":"Stock Balance - 10 tablets of 20mg ZINC (Pre-populated) (Hidden)"},{"linkId":"37bbf711-8f65-4244-b75d-9d5e9f76c501","text":"Latest Observation ID - 10 tablets of 20mg ZINC (Pre-populated) (Hidden)"},{"linkId":"7d33a5c2-53f5-44ac-8ccb-b162d2d6db2c","text":"Stockout Flag ID - 10 tablets of 20mg ZINC (Pre-populated) (Hidden)"},{"linkId":"8f62fce7-6a78-460b-9a5b-6feae7aa1818","text":"Stock Balance - 20 tablets of 10mg ZINC (Pre-populated) (Hidden)"},{"linkId":"8304199b-a549-440b-b3c6-e132d2e7a20f","text":"Latest Observation ID - 20 tablets of 10mg ZINC (Pre-populated) (Hidden)"},{"linkId":"67f81318-5940-412e-8de9-8b9dd8cbafbd","text":"Stockout Flag ID - 20 tablets of 10mg ZINC (Pre-populated) (Hidden)"},{"linkId":"7f5cab9a-c19e-4001-aaa7-5e013a515ca8","text":"Stock Balance - 3 sachets of (ORS) Oral Rehydration Salt 20.5g/L (Pre-populated) (Hidden)"},{"linkId":"d43ed70b-d8d7-4b8c-948b-e0e1f5a7b4a3","text":"Latest Observation ID - 3 sachets of (ORS) Oral Rehydration Salt 20.5g/L (Pre-populated) (Hidden)"},{"linkId":"8994ce39-d1b8-4486-9b75-3471b9f8b8ed","text":"Stockout Flag ID - 3 sachets of (ORS) Oral Rehydration Salt 20.5g/L (Pre-populated) (Hidden)"},{"linkId":"ee63e5a2-302f-4576-ad12-877b02586ef0","text":"Stock Balance - Paracetamol 100mg (9 tablets) for 3 days given? (3/day * 3days) (Pre-populated) (Hidden)"},{"linkId":"74db611e-4c4f-45ab-a28b-d99de3c813d3","text":"Latest Observation ID - Paracetamol 100mg (9 tablets) for 3 days given? (3/day * 3days) (Pre-populated) (Hidden)"},{"linkId":"22104359-fe5c-42da-9d87-09b6727bf777","text":"Stockout Flag ID - Paracetamol 100mg (9 tablets) for 3 days given? (3/day * 3days) (Pre-populated) (Hidden)"},{"linkId":"e215bd25-8962-4ef1-8040-149cbb653781","text":"Stock Balance -Paracetamol 100mg (18 tablets) for 5 days given? (2tablets* 3per day for 3 days) (Pre-populated) (Hidden)"},{"linkId":"bb342c7f-39a1-4ff7-bc13-28efdc7386ab","text":"Latest Observation ID - Paracetamol 100mg (18 tablets) for 5 days given? (2tablets* 3per day for 3 days) (Pre-populated) (Hidden)"},{"linkId":"5d788dc8-284c-4c6a-8e0c-70d91bc95c97","text":"Stockout Flag ID - Paracetamol 100mg (18 tablets) for 5 days given? (2tablets* 3per day for 3 days) (Pre-populated) (Hidden)"},{"linkId":"30a4b90a-34d4-432d-91ac-35d5da6910bb","text":"Stock Balance - Malaria RDT (Pre-populated) (Hidden)"},{"linkId":"f5ad8745-b8ab-423d-8e52-1cc6c73f8e63","text":"Latest Observation ID - Malaria RDT (Pre-populated) (Hidden)"},{"linkId":"752a93ba-2cae-4e44-945c-c3813ff9927a","text":"Stockout Flag ID - Malaria RDT (Pre-populated) (Hidden)","answer":[{"valueString":"d70705a1-e4a5-463f-9356-c74c3a800379"}]},{"linkId":"da3a03fa-dc1a-479a-9bac-557a03e03bc7","text":"Stock Balance - AL: Artemether 20mg + Lumefatrine 120mg (1x6) tablets(2-11 months) (Pre-populated) (Hidden)"},{"linkId":"8a3806e1-323e-48dc-99ca-9555f5e8051a","text":"Latest Observation ID - AL: Artemether 20mg + Lumefatrine 120mg (1x6) tablets(2-11 months) (Pre-populated) (Hidden)"},{"linkId":"9cf1515b-a7b9-4253-9050-22592661eff5","text":"Stockout Flag ID - AL: Artemether 20mg + Lumefatrine 120mg (1x6) tablets(2-11 months) (Pre-populated) (Hidden)"},{"linkId":"250db9c5-3b3a-4b1c-8285-8ce40583cee3","text":"Stock Balance - ASAQ: AS (25mg) + AQ (67.5mg) ( 2-11months) tablet (Pre-populated) (Hidden)"},{"linkId":"2c8b02ff-4d60-49f8-b823-cee1e5b07ab4","text":"Latest Observation ID - ASAQ: AS (25mg) + AQ (67.5mg) ( 2-11months) tablet (Pre-populated) (Hidden)"},{"linkId":"c1f46b7e-9e37-4039-b78b-b96f00512c60","text":"Stockout Flag ID - ASAQ: AS (25mg) + AQ (67.5mg) ( 2-11months) tablet (Pre-populated) (Hidden)"},{"linkId":"327e5785-4cc4-4c9d-9bd1-860359e3d0d9","text":"Stock Balance - AL: Artemether 20mg + Lumefatrine 120mg (2x6) tablets(1-5 years)t (Pre-populated) (Hidden)"},{"linkId":"69995463-830b-4c73-8cfb-a7c258fcefa5","text":"Latest Observation ID - AL: Artemether 20mg + Lumefatrine 120mg (2x6) tablets(1-5 years) (Pre-populated) (Hidden)"},{"linkId":"d1470016-409a-4ae1-8409-addc1afeec3a","text":"Stockout Flag ID - AL: Artemether 20mg + Lumefatrine 120mg (2x6) tablets(1-5 years) (Pre-populated) (Hidden)"},{"linkId":"dc801d93-5e85-4bea-bf51-4093ce1b5d40","text":"Stock Balance - ASAQ: AS (50mg) + AQ (135mg) ( 1-5years) tablets (Pre-populated) (Hidden)"},{"linkId":"7726bea7-1a90-497a-810f-605e79c01d77","text":"Latest Observation ID - ASAQ: AS (50mg) + AQ (135mg) ( 1-5years) tablets (Pre-populated) (Hidden)"},{"linkId":"21117515-ef9e-462d-8b1d-e1fe2f4c7221","text":"Stockout Flag ID - ASAQ: AS (50mg) + AQ (135mg) ( 1-5years) tablets (Pre-populated) (Hidden)"},{"linkId":"f3836465-adca-4cc8-8710-c392ee85f739","text":"Child urgently referred to the hospital?","answer":[{"valueCoding":{"id":"fcd50287-bed0-4c2f-cd30-3b86bf156002","system":"urn:uuid:c7bdc589-47f8-4092-9a59-efb6ccc975e8","code":"yes","display":"Yes"}}]}]}]}
FikriMilano commented 1 year ago

@dubdabasoduba for the age, can you tell me what exact value did you see, and what should be the correct one?

FikriMilano commented 1 year ago

@dubdabasoduba also, what's the steps to replicate that?

dubdabasoduba commented 1 year ago

Here is the questionnaire used https://github.com/opensrp/fhir-resources/blob/main/ecbis_liberia/questionnaire/program_registration/over_2_months_sick_child_registration.json

dubdabasoduba commented 1 year ago

@FikriMilano the age field should be calculated in months. If you check the above QR it does not have the age added.

Steps to replicate

  1. Log in to the eCBIS app
  2. use the app ID: cha
  3. use the username: ecbis
  4. Register a family member who is at least above 2 months old and less than 5 yrs old.
  5. Go to the family member profile and click on the Record as Sick form.
  6. Fill out the form and check the QR.
  7. The age field should have a value that represents the family member's age in months.
FikriMilano commented 1 year ago

@dubdabasoduba the app crashes after submitting the new pin. what app variant and branch did you use?

dubdabasoduba commented 1 year ago

ecbisRelease

FikriMilano commented 1 year ago

@dubdabasoduba which branch are you using? 2180-harmonize-launching-questionnaire or main

FikriMilano commented 1 year ago

NVM, I'm using app/debug

dubdabasoduba commented 1 year ago

2180-harmonize-launching-questionnaire

FikriMilano commented 1 year ago

@ekigamba I changed the questionnaireConfig.type to EDIT, but that doesn't seem to fix the population for Record as sick questionnaire. I also checked the FHIRPath of 'Child Age' initial expression, test it using this FHIRPath tool https://hl7.github.io/fhirpath.js/ and that expression was giving answer, means it works.

@dubdabasoduba I doubt we can fix the 'child age not populating' issue any time soon, at least before the Wednesday release. It's just seem odd for population to work for Registration Info but not Record as sick.

FikriMilano commented 1 year ago

But the PR itself, should fix the issue for globally enabling the Questionnaire to validate it's response whether it's response from db or population. And the Registration Info population itself, has been fixed.

ekigamba commented 1 year ago

@ekigamba I changed the questionnaireConfig.type to EDIT, but that doesn't seem to fix the population for Record as sick questionnaire. I also checked the FHIRPath of 'Child Age' initial expression, test it using this FHIRPath tool hl7.github.io/fhirpath.js and that expression was giving answer, means it works.

@dubdabasoduba I doubt we can fix the 'child age not populating' issue any time soon, at least before the Wednesday release. It's just seem odd for population to work for Registration Info but not Record as sick.

@FikriMilano I didn't test the recommended solution for the sick registration form population issue. See if you can debug it and see what's missing or wrong