diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index 69189010c..8d75aa765 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -75,7 +75,7 @@ jobs: echo "KNOWN_HOSTS=" >> $GITHUB_ENV - name: Login to DockerHub - uses: docker/login-action@v1 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_TOKEN }} diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index cc1e8e295..9708e9b20 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -102,7 +102,7 @@ jobs: echo "KNOWN_HOSTS=" >> $GITHUB_ENV - name: Login to DockerHub - uses: docker/login-action@v1 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_TOKEN }} diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index b3d0fe56e..3ffcabf0c 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -15,7 +15,7 @@ jobs: base: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: ref: '${{ github.event.inputs.branch_name }}' @@ -47,7 +47,7 @@ jobs: custom_tag: ${{ env.TAG }} - name: Login to DockerHub - uses: docker/login-action@v1 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_TOKEN }} diff --git a/.github/workflows/publish-to-dockerhub.yml b/.github/workflows/publish-to-dockerhub.yml index 007a369a1..4aa44d796 100644 --- a/.github/workflows/publish-to-dockerhub.yml +++ b/.github/workflows/publish-to-dockerhub.yml @@ -17,20 +17,20 @@ jobs: push: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 if: github.event_name == 'workflow_dispatch' with: fetch-depth: 2 ref: '${{ github.event.inputs.branch_name }}' - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 if: github.event_name == 'push' - name: Get tags run: git fetch --tags origin - name: Login to DockerHub - uses: docker/login-action@v1 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_TOKEN }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index db701c4b8..288bffa17 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,7 +8,7 @@ jobs: steps: - name: Checking out git repo - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Use Node.js 18.19 uses: actions/setup-node@v2 diff --git a/CHANGELOG.md b/CHANGELOG.md index 9aa0f71f8..924a0e41f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,20 +1,26 @@ # Changelog -## 1.5.0 (TBD) +## [1.5.0] + +- Change auth URLs to access them via gateway +- Add hearth URL to search service +- Include an endpoint for serving individual certificates in development mode +- Include compositionId in confirm registration payload +- Move individual configuration options to feature flags +- Remove logrocket refrences +- Upgrade to node 18 +- Enable gzip compression in client & login +- Make SENTRY_DSN variable optional +- Use docker compose v2 in github workflows +- Mass email from national system admin - Remove dependency on openhim. The openhim db is kept for backwards compatibility reasons and will be removed in v1.6 -- Change condition of Number of previous births - -## [1.3.4](https://github.com/opencrvs/opencrvs-farajaland/compare/v1.3.3...v1.3.4) - -## Breaking changes - -## New features - -## Bug fixes - -- Fix typo in certificate handlebar names - -See [Releases](https://github.com/opencrvs/opencrvs-farajaland/releases) for release notes of older releases. +- Add smtp environment variables in qa compose file +- Use image tag instead of patterns in certificate SVGs +- Generate default address according to logged-in user's location +- Remove authentication from dashboard queries route +- Added french translation of informant for print certificate flow, issue certificate flow & correction flow +- Groom's and Bride's name, printIssue translation variables updated [#124](https://github.com/opencrvs/opencrvs-countryconfig/pull/124) +- Change condition of Number of previous births ## [1.4.1](https://github.com/opencrvs/opencrvs-farajaland/compare/v1.4.0...v1.4.1) @@ -70,76 +76,17 @@ In the next OpenCRVS release v1.5.0, there will be two significant changes: - The `infrastructure` directory and related pipelines will be moved to a new repository. - Both the new infrastructure repository and the OpenCRVS country resource package repositories will start following their own release cycles, mostly independent from the core's release cycle. From this release forward, both packages are released as "OpenCRVS minor compatible" releases, meaning that the OpenCRVS countryconfig 1.3.0- is compatible with OpenCRVS 1.3.0, 1.3.1, 1.3.2, etc. This allows for the release of new hotfix versions of the core without having to publish a new version of the infrastructure or countryconfig. -See [Releases](https://github.com/opencrvs/opencrvs-farajaland/releases) for release notes of older releases. - -## [1.3.3](https://github.com/opencrvs/opencrvs-farajaland/compare/v1.3.2...v1.3.3) - -### Breaking changes - -### New features - -- #### Greater customizability of location data in certificates - - The various admin level handlebars e.g. **statePlaceofbirth**, - **districtPrimaryMother** only contained the name of that location which was - not able to take advantage of all the information OpenCRVS had available - about the various admin levels e.g. the name of that location in the - secondary language. So we are introducing a new set of admin level - handlebars that would contain the **id** of that location which we can - resolve into a value of the shape - - ``` - { - name: string - alias: string - } - ``` - - using the new **"location"** handlebar helper. Here name is the primary - label of the location and alias being the secondary one. Currently only - these 2 fields are available but we will be adding more fields depending on - various countries requirements. If previously the certificate svg used to - contain `{{districtPlaceofbirth}}` then now we can replace it with - `{{location districtPlaceofbirthId 'name'}}`. To access alias, the `'name'` - needs to be replaced with `'alias'`. - - Below is a list of all the new handlebars that are meant to be used with the - "location" handlebar helper. - - - statePrimaryInformantId - - districtPrimaryInformantId - - statePlaceofbirthId - - districtPlaceofbirthId - - statePrimaryMotherId - - districtPrimaryMotherId - - statePrimaryFatherId - - districtPrimaryFatherId - - statePrimaryDeceasedId - - districtPrimaryDeceasedId - - statePlaceofdeathId - - districtPlaceofdeathId - - statePrimaryGroomId - - districtPrimaryGroomId - - statePrimaryBrideId - - districtPrimaryBrideId - - statePlaceofmarriageId - - districtPlaceofmarriageId - - registrar.stateId - - registrar.districtId - - registrar.officeId - - registrationAgent.stateId - - registrationAgent.districtId - - registrationAgent.officeId - - ##### We will be deprecating the counterpart of the above mentioned handlebars that contains only the label of the specified location in a future version so we highly recommend that implementers update their certificates to use these new ones. +## [1.3.4](https://github.com/opencrvs/opencrvs-farajaland/compare/v1.3.3...v1.3.4) ### Bug fixes +- Fix typo in certificate handlebar names + ## [1.3.3](https://github.com/opencrvs/opencrvs-farajaland/compare/v1.3.2...v1.3.3) -## Breaking changes +### Breaking changes -## New features +### New features - #### Greater customizability of location data in certificates @@ -207,7 +154,9 @@ See [Releases](https://github.com/opencrvs/opencrvs-farajaland/releases) for rel - #### Reason for late registration field The birth & death forms will include another custom field, **reasonForLateRegistration**, which makes use of "LATE_REGISTRATION_TARGET" configuration option in it's visibility conditional. -## Bug fixes +### Bug fixes - Updated translations for form introduction page and sending for approval to reflect the default notification method being email. - Remove hard-coded conditionals from "occupation" field to make it usable in the deceased form + +See [Releases](https://github.com/opencrvs/opencrvs-farajaland/releases) for release notes of older releases. diff --git a/infrastructure/backups/download.sh b/infrastructure/backups/download.sh index 5e4ca8391..0d87a1783 100644 --- a/infrastructure/backups/download.sh +++ b/infrastructure/backups/download.sh @@ -99,7 +99,13 @@ mkdir -p $BACKUP_RAW_FILES_DIR/extract tar -xvf $BACKUP_RAW_FILES_DIR/${LABEL}.tar.gz -C $BACKUP_RAW_FILES_DIR/extract # Delete previous days restore(s) and move the newly downloaded one in place -rm -rf /data/backups/* +for BACKUP_DIR in /data/backups/*; do + if [ -d "$BACKUP_DIR" ]; then + rm -rf $BACKUP_DIR/* + fi +done + + mv $BACKUP_RAW_FILES_DIR/extract/elasticsearch /data/backups/elasticsearch mv $BACKUP_RAW_FILES_DIR/extract/influxdb /data/backups/influxdb/${LABEL} diff --git a/infrastructure/docker-compose.deploy.yml b/infrastructure/docker-compose.deploy.yml index f0dbc1efa..e8122eefe 100644 --- a/infrastructure/docker-compose.deploy.yml +++ b/infrastructure/docker-compose.deploy.yml @@ -555,7 +555,7 @@ services: deploy: labels: - 'traefik.enable=true' - - 'traefik.http.routers.countryconfig.rule=Host(`countryconfig.{{hostname}}`) && !Path(`/email`) && !Path(`/notification`)' + - 'traefik.http.routers.countryconfig.rule=Host(`countryconfig.{{hostname}}`) && !Path(`/email`) && !Path(`/notification`) &!Path(`/dashboards/queries.json`)' - 'traefik.http.services.countryconfig.loadbalancer.server.port=3040' - 'traefik.http.routers.countryconfig.tls=true' - 'traefik.http.routers.countryconfig.tls.certresolver=certResolver' @@ -568,13 +568,15 @@ services: - 'traefik.http.middlewares.countryconfig.headers.stsseconds=31536000' - 'traefik.http.middlewares.countryconfig.headers.stsincludesubdomains=true' - 'traefik.http.middlewares.countryconfig.headers.stspreload=true' - # This is an invalid IP range, effectively blocking all IPs from accessing /email path. + # This is an invalid IP range, effectively blocking all IPs from accessing below paths. # It's only meant to be accessed from the internal docker network. - - 'traefik.http.middlewares.block-email.ipwhitelist.sourcerange=255.255.255.255' + - 'traefik.http.middlewares.block-internal-routes.ipwhitelist.sourcerange=255.255.255.255' - 'traefik.http.routers.block-email.rule=Host(`countryconfig.{{hostname}}`) && Path(`/email`)' - - 'traefik.http.routers.block-email.middlewares=block-email' + - 'traefik.http.routers.block-email.middlewares=block-internal-routes' - 'traefik.http.routers.block-notification.rule=Host(`countryconfig.{{hostname}}`) && Path(`/notification`)' - - 'traefik.http.routers.block-notification.middlewares=block-email' + - 'traefik.http.routers.block-notification.middlewares=block-internal-routes' + - 'traefik.http.routers.block-dashboard-queries.rule=Host(`countryconfig.{{hostname}}`) && Path(`/dashboards/queries.json`)' + - 'traefik.http.routers.block-dashboard-queries.middlewares=block-internal-routes' replicas: 1 environment: - MONGO_URL=mongodb://mongo1/user-mgnt?replicaSet=rs0 @@ -849,7 +851,7 @@ services: deploy: labels: - 'traefik.enable=true' - - 'traefik.http.routers.config.rule=Host(`config.{{hostname}}`)' + - 'traefik.http.routers.config.rule=Host(`config.{{hostname}}`) && !Path(`/dashboardQueries`)' - 'traefik.http.services.config.loadbalancer.server.port=2021' - 'traefik.http.routers.config.tls=true' - 'traefik.http.routers.config.tls.certresolver=certResolver' @@ -861,6 +863,9 @@ services: - 'traefik.http.middlewares.config.headers.stsseconds=31536000' - 'traefik.http.middlewares.config.headers.stsincludesubdomains=true' - 'traefik.http.middlewares.config.headers.stspreload=true' + - 'traefik.http.middlewares.block-internal-routes.ipwhitelist.sourcerange=255.255.255.255' + - 'traefik.http.routers.block-dashboard-queries.rule=Host(`countryconfig.{{hostname}}`) && Path(`/dashboardQueries`)' + - 'traefik.http.routers.block-dashboard-queries.middlewares=block-internal-routes' replicas: 1 networks: - overlay_net diff --git a/infrastructure/docker-compose.staging-deploy.yml b/infrastructure/docker-compose.staging-deploy.yml index 783e2a598..826aa598f 100644 --- a/infrastructure/docker-compose.staging-deploy.yml +++ b/infrastructure/docker-compose.staging-deploy.yml @@ -159,6 +159,7 @@ services: depends_on: - mongo1 + mongo-on-update: environment: - REPLICAS=1 diff --git a/infrastructure/monitoring/kibana/setup-config.sh b/infrastructure/monitoring/kibana/setup-config.sh index 38f439bd7..a2f5cca78 100755 --- a/infrastructure/monitoring/kibana/setup-config.sh +++ b/infrastructure/monitoring/kibana/setup-config.sh @@ -23,7 +23,7 @@ if [ "$status_code" -ne 200 ]; then fi # Delete all alerts -$docker_command --connect-timeout 60 -u elastic:$ELASTICSEARCH_SUPERUSER_PASSWORD "$kibana_alerting_api_url" | docker run --rm -i --network=opencrvs_overlay_net stedolan/jq -r '.data[].id' | while read -r id; do +$docker_command --connect-timeout 60 -u elastic:$ELASTICSEARCH_SUPERUSER_PASSWORD "$kibana_alerting_api_url" | docker run --rm -i --network=opencrvs_overlay_net ghcr.io/jqlang/jq -r '.data[].id' | while read -r id; do $docker_command --connect-timeout 60 -X DELETE -H 'kbn-xsrf: true' -u elastic:$ELASTICSEARCH_SUPERUSER_PASSWORD "http://kibana:5601/api/alerting/rule/$id" done @@ -31,7 +31,7 @@ done $docker_command --connect-timeout 60 -u elastic:$ELASTICSEARCH_SUPERUSER_PASSWORD -X POST "http://kibana:5601/api/saved_objects/_import?overwrite=true" -H 'kbn-xsrf: true' --form file=@/config.ndjson > /dev/null # Re-enable all alerts -$docker_command --connect-timeout 60 -u elastic:$ELASTICSEARCH_SUPERUSER_PASSWORD "$kibana_alerting_api_url" | docker run --rm -i --network=opencrvs_overlay_net stedolan/jq -r '.data[].id' | while read -r id; do +$docker_command --connect-timeout 60 -u elastic:$ELASTICSEARCH_SUPERUSER_PASSWORD "$kibana_alerting_api_url" | docker run --rm -i --network=opencrvs_overlay_net ghcr.io/jqlang/jq -r '.data[].id' | while read -r id; do $docker_command --connect-timeout 60 -X POST -H 'kbn-xsrf: true' -u elastic:$ELASTICSEARCH_SUPERUSER_PASSWORD "http://kibana:5601/api/alerting/rule/$id/_disable" $docker_command --connect-timeout 60 -X POST -H 'kbn-xsrf: true' -u elastic:$ELASTICSEARCH_SUPERUSER_PASSWORD "http://kibana:5601/api/alerting/rule/$id/_enable" done diff --git a/infrastructure/server-setup/backups.yml b/infrastructure/server-setup/backups.yml index fa8717219..c690e2f8a 100644 --- a/infrastructure/server-setup/backups.yml +++ b/infrastructure/server-setup/backups.yml @@ -111,6 +111,8 @@ marker: '# {mark} ANSIBLE MANAGED BLOCK docker-manager-first {{ manager_hostname }}' create: yes mode: 0600 + owner: '{{ external_backup_server_user }}' + tags: - backups diff --git a/postman/Event Notification.postman_collection.json b/postman/Event Notification.postman_collection.json index 94cd2c6a4..d969556be 100644 --- a/postman/Event Notification.postman_collection.json +++ b/postman/Event Notification.postman_collection.json @@ -12,7 +12,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\n \"resourceType\": \"Bundle\",\n \"type\": \"document\",\n \"meta\": {\n \"lastUpdated\": \"2022-08-14T14:43:47.000Z\"\n },\n \"entry\": [\n {\n \"fullUrl\": \"urn:uuid:37dd8e55-69c0-493d-b1a0-b7462a1d806a\",\n \"resource\": {\n \"identifier\": {\n \"system\": \"urn:ietf:rfc:3986\",\n \"value\": \"8f793c5a-3d53-4c9b-898b-1c04759716c6\"\n },\n \"resourceType\": \"Composition\",\n \"status\": \"final\",\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-types\",\n \"code\": \"birth-notification\"\n }\n ],\n \"text\": \"Birth Notification\"\n },\n \"class\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/classes\",\n \"code\": \"crvs-document\"\n }\n ],\n \"text\": \"CRVS Document\"\n },\n \"subject\": {\n \"reference\": \"urn:uuid:760c393e-4dc3-4572-83f6-b70765963ef1\"\n },\n \"date\": \"2022-08-14T14:43:47.000Z\",\n \"author\": [],\n \"title\": \"Birth Notification\",\n \"section\": [\n {\n \"title\": \"Child details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/sections\",\n \"code\": \"child-details\"\n }\n ],\n \"text\": \"Child details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:760c393e-4dc3-4572-83f6-b70765963ef1\"\n }\n ]\n },\n {\n \"title\": \"Birth encounter\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/sections\",\n \"code\": \"birth-encounter\"\n }\n ],\n \"text\": \"Birth encounter\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:7cb1d9cc-ea4b-4046-bea0-38bdf3082f56\"\n }\n ]\n },\n {\n \"title\": \"Mother's details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/sections\",\n \"code\": \"mother-details\"\n }\n ],\n \"text\": \"Mother's details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:d9d3a8c8-6a47-47a1-be86-0493a4ec55a7\"\n }\n ]\n },\n {\n \"title\": \"Informant's details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/sections\",\n \"code\": \"informant-details\"\n }\n ],\n \"text\": \"Informant's details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:b74fbd0e-8536-4c11-833d-781e89a4b553\"\n }\n ]\n },\n {\n \"title\": \"Father's details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-sections\",\n \"code\": \"father-details\"\n }\n ],\n \"text\": \"Father's details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:ad1e15bb-51da-449a-8a12-c7dae10728e4\"\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:8546aaf3-8a60-4150-bc24-ab5579bc0fa2\",\n \"resource\": {\n \"resourceType\": \"Task\",\n \"status\": \"draft\",\n \"intent\": \"unknown\",\n \"identifier\": [],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/types\",\n \"code\": \"BIRTH\"\n }\n ]\n },\n \"focus\": {\n \"reference\": \"urn:uuid:37dd8e55-69c0-493d-b1a0-b7462a1d806a\"\n },\n \"extension\": [\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person\",\n \"valueString\": \"MOTHER\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person-phone-number\",\n \"valueString\": \"+260759205190\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person-email\",\n \"valueString\": \"axon@gmail.com\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/timeLoggedMS\",\n \"valueInteger\": 0\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/in-complete-fields\",\n \"valueString\": \"N/A\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/regLastLocation\",\n \"valueReference\": {\n \"reference\": \"Location/{{officeLocationId}}\"\n }\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/regLastOffice\",\n \"valueReference\": {\n \"reference\": \"Location/{{officeId}}\"\n }\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:760c393e-4dc3-4572-83f6-b70765963ef1\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"active\": true,\n \"name\": [\n {\n \"use\": \"en\",\n \"family\": [\n \"Tatke\"\n ],\n \"given\": [\n \"Harney\"\n ]\n }\n ],\n \"gender\": \"male\",\n \"birthDate\": \"2022-06-29\",\n \"deceasedBoolean\": false,\n \"multipleBirthBoolean\": false\n }\n },\n {\n \"fullUrl\": \"urn:uuid:d9d3a8c8-6a47-47a1-be86-0493a4ec55a7\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"active\": true,\n \"identifier\": [\n {\n \"use\": \"official\",\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/identifier-type\",\n \"code\": \"NATIONAL_ID\"\n }\n ]\n },\n \"value\": \"3624667568\"\n }\n ],\n \"name\": [\n {\n \"use\": \"en\",\n \"family\": [\n \"Ratke\"\n ],\n \"given\": [\n \"Mom\"\n ]\n }\n ],\n \"gender\": \"female\",\n \"telecom\": [\n {\n \"use\": \"mobile\",\n \"system\": \"phone\",\n \"value\": \"+260759205190\"\n }\n ],\n \"birthDate\": \"2002-06-29\",\n \"deceasedBoolean\": false,\n \"multipleBirthInteger\": 2,\n \"maritalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/StructureDefinition/marital-status\",\n \"code\": \"M\"\n }\n ],\n \"text\": \"MARRIED\"\n },\n \"address\": [\n {\n \"type\": \"PRIMARY_ADDRESS\",\n \"line\": [\n \"12\",\n \"Usual Street\",\n \"Usual Residental Area\",\n \"\",\n \"\",\n \"URBAN\"\n ],\n \"city\": \"Meghanland\",\n \"district\": \"{{districtId}}\",\n \"state\": \"{{stateId}}\",\n \"postalCode\": \"52275\",\n \"country\": \"{{countryCode}}\"\n }\n ],\n \"extension\": [\n {\n \"url\": \"http://opencrvs.org/specs/extension/patient-occupation\",\n \"valueString\": \"Housewife\"\n },\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/patient-nationality\",\n \"extension\": [\n {\n \"url\": \"code\",\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"urn:iso:std:iso:3166\",\n \"code\": \"{{countryCode}}\"\n }\n ]\n }\n },\n {\n \"url\": \"period\",\n \"valuePeriod\": {\n \"start\": \"\",\n \"end\": \"\"\n }\n }\n ]\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/educational-attainment\",\n \"valueString\": \"POST_SECONDARY_ISCED_4\"\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:b74fbd0e-8536-4c11-833d-781e89a4b553\",\n \"resource\": {\n \"resourceType\": \"RelatedPerson\",\n \"relationship\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/ValueSet/relatedperson-relationshiptype\",\n \"code\": \"MOTHER\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"urn:uuid:d9d3a8c8-6a47-47a1-be86-0493a4ec55a7\"\n }\n }\n },\n {\n \"fullUrl\": \"urn:uuid:ad1e15bb-51da-449a-8a12-c7dae10728e4\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"active\": true,\n \"identifier\": [\n {\n \"use\": \"official\",\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/identifier-type\",\n \"code\": \"NATIONAL_ID\"\n }\n ]\n },\n \"value\": \"6848901132\"\n }\n ],\n \"name\": [\n {\n \"use\": \"en\",\n \"family\": [\n \"Ratke\"\n ],\n \"given\": [\n \"Dad\"\n ]\n }\n ],\n \"gender\": \"male\",\n \"telecom\": [\n {\n \"use\": \"mobile\",\n \"system\": \"phone\",\n \"value\": \"+260759205190\"\n }\n ],\n \"birthDate\": \"2002-06-29\",\n \"deceasedBoolean\": false,\n \"multipleBirthInteger\": 2,\n \"maritalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/StructureDefinition/marital-status\",\n \"code\": \"M\"\n }\n ],\n \"text\": \"MARRIED\"\n },\n \"address\": [\n {\n \"type\": \"PRIMARY_ADDRESS\",\n \"line\": [\n \"12\",\n \"Usual Street\",\n \"Usual Residental Area\",\n \"\",\n \"\",\n \"URBAN\"\n ],\n \"city\": \"Madgeland\",\n \"district\": \"{{districtId}}\",\n \"state\": \"{{stateId}}\",\n \"postalCode\": \"52275\",\n \"country\": \"{{countryCode}}\"\n }\n ],\n \"extension\": [\n {\n \"url\": \"http://opencrvs.org/specs/extension/patient-occupation\",\n \"valueString\": \"Businessman\"\n },\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/patient-nationality\",\n \"extension\": [\n {\n \"url\": \"code\",\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"urn:iso:std:iso:3166\",\n \"code\": \"FAR\"\n }\n ]\n }\n },\n {\n \"url\": \"period\",\n \"valuePeriod\": {\n \"start\": \"\",\n \"end\": \"\"\n }\n }\n ]\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/educational-attainment\",\n \"valueString\": \"POST_SECONDARY_ISCED_4\"\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:7cb1d9cc-ea4b-4046-bea0-38bdf3082f56\",\n \"resource\": {\n \"resourceType\": \"Encounter\",\n \"status\": \"finished\",\n \"location\": [\n {\n \"location\": {\n \"reference\": \"Location/{{facilityId}}\"\n }\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:45c68568-2ca0-4932-9731-535dd4180fe0\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"status\": \"final\",\n \"context\": {\n \"reference\": \"urn:uuid:7cb1d9cc-ea4b-4046-bea0-38bdf3082f56\"\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/observation-category\",\n \"code\": \"procedure\",\n \"display\": \"Procedure\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"57722-1\",\n \"display\": \"Birth plurality of Pregnancy\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": \"SINGLE\"\n }\n }\n },\n {\n \"fullUrl\": \"urn:uuid:d2d3d5b8-658e-4c29-9ec5-cb2431b4ddf3\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"status\": \"final\",\n \"context\": {\n \"reference\": \"urn:uuid:7cb1d9cc-ea4b-4046-bea0-38bdf3082f56\"\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/observation-category\",\n \"code\": \"vital-signs\",\n \"display\": \"Vital Signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"3141-9\",\n \"display\": \"Body weight Measured\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": 4,\n \"unit\": \"kg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"kg\"\n }\n }\n },\n {\n \"fullUrl\": \"urn:uuid:706905cf-7e5d-4d9f-866a-a3795780a990\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"status\": \"final\",\n \"context\": {\n \"reference\": \"urn:uuid:7cb1d9cc-ea4b-4046-bea0-38bdf3082f56\"\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/observation-category\",\n \"code\": \"procedure\",\n \"display\": \"Procedure\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"73764-3\",\n \"display\": \"Birth attendant title\"\n }\n ]\n },\n \"valueString\": \"PHYSICIAN\"\n }\n }\n ]\n}", + "raw": "{\n \"resourceType\": \"Bundle\",\n \"type\": \"document\",\n \"meta\": {\n \"lastUpdated\": \"2022-08-14T14:43:47.000Z\"\n },\n \"entry\": [\n {\n \"fullUrl\": \"urn:uuid:37dd8e55-69c0-493d-b1a0-b7462a1d806a\",\n \"resource\": {\n \"identifier\": {\n \"system\": \"urn:ietf:rfc:3986\",\n \"value\": \"8f793c5a-3d53-4c9b-898b-1c04759716c6\"\n },\n \"resourceType\": \"Composition\",\n \"status\": \"final\",\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-types\",\n \"code\": \"birth-notification\"\n }\n ],\n \"text\": \"Birth Notification\"\n },\n \"class\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/classes\",\n \"code\": \"crvs-document\"\n }\n ],\n \"text\": \"CRVS Document\"\n },\n \"subject\": {\n \"reference\": \"urn:uuid:760c393e-4dc3-4572-83f6-b70765963ef1\"\n },\n \"date\": \"2022-08-14T14:43:47.000Z\",\n \"author\": [],\n \"title\": \"Birth Notification\",\n \"section\": [\n {\n \"title\": \"Child details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/sections\",\n \"code\": \"child-details\"\n }\n ],\n \"text\": \"Child details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:760c393e-4dc3-4572-83f6-b70765963ef1\"\n }\n ]\n },\n {\n \"title\": \"Birth encounter\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/sections\",\n \"code\": \"birth-encounter\"\n }\n ],\n \"text\": \"Birth encounter\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:7cb1d9cc-ea4b-4046-bea0-38bdf3082f56\"\n }\n ]\n },\n {\n \"title\": \"Mother's details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/sections\",\n \"code\": \"mother-details\"\n }\n ],\n \"text\": \"Mother's details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:d9d3a8c8-6a47-47a1-be86-0493a4ec55a7\"\n }\n ]\n },\n {\n \"title\": \"Informant's details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/sections\",\n \"code\": \"informant-details\"\n }\n ],\n \"text\": \"Informant's details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:b74fbd0e-8536-4c11-833d-781e89a4b553\"\n }\n ]\n },\n {\n \"title\": \"Father's details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-sections\",\n \"code\": \"father-details\"\n }\n ],\n \"text\": \"Father's details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:ad1e15bb-51da-449a-8a12-c7dae10728e4\"\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:8546aaf3-8a60-4150-bc24-ab5579bc0fa2\",\n \"resource\": {\n \"resourceType\": \"Task\",\n \"status\": \"draft\",\n \"intent\": \"unknown\",\n \"identifier\": [],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/types\",\n \"code\": \"BIRTH\"\n }\n ]\n },\n \"focus\": {\n \"reference\": \"urn:uuid:37dd8e55-69c0-493d-b1a0-b7462a1d806a\"\n },\n \"extension\": [\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person\",\n \"valueString\": \"MOTHER\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person-phone-number\",\n \"valueString\": \"+260759205190\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person-email\",\n \"valueString\": \"axon@gmail.com\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/timeLoggedMS\",\n \"valueInteger\": 0\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/in-complete-fields\",\n \"valueString\": \"N/A\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/regLastOffice\",\n \"valueReference\": {\n \"reference\": \"Location/{{officeId}}\"\n }\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:760c393e-4dc3-4572-83f6-b70765963ef1\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"active\": true,\n \"name\": [\n {\n \"use\": \"en\",\n \"family\": [\n \"Tatke\"\n ],\n \"given\": [\n \"Harney\"\n ]\n }\n ],\n \"gender\": \"male\",\n \"birthDate\": \"2022-06-29\",\n \"deceasedBoolean\": false,\n \"multipleBirthBoolean\": false\n }\n },\n {\n \"fullUrl\": \"urn:uuid:d9d3a8c8-6a47-47a1-be86-0493a4ec55a7\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"active\": true,\n \"identifier\": [\n {\n \"use\": \"official\",\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/identifier-type\",\n \"code\": \"NATIONAL_ID\"\n }\n ]\n },\n \"value\": \"3624667568\"\n }\n ],\n \"name\": [\n {\n \"use\": \"en\",\n \"family\": [\n \"Ratke\"\n ],\n \"given\": [\n \"Mom\"\n ]\n }\n ],\n \"gender\": \"female\",\n \"telecom\": [\n {\n \"use\": \"mobile\",\n \"system\": \"phone\",\n \"value\": \"+260759205190\"\n }\n ],\n \"birthDate\": \"2002-06-29\",\n \"deceasedBoolean\": false,\n \"multipleBirthInteger\": 2,\n \"maritalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/StructureDefinition/marital-status\",\n \"code\": \"M\"\n }\n ],\n \"text\": \"MARRIED\"\n },\n \"address\": [\n {\n \"type\": \"PRIMARY_ADDRESS\",\n \"line\": [\n \"12\",\n \"Usual Street\",\n \"Usual Residental Area\",\n \"\",\n \"\",\n \"URBAN\"\n ],\n \"city\": \"Meghanland\",\n \"district\": \"{{districtId}}\",\n \"state\": \"{{stateId}}\",\n \"postalCode\": \"52275\",\n \"country\": \"{{countryCode}}\"\n }\n ],\n \"extension\": [\n {\n \"url\": \"http://opencrvs.org/specs/extension/patient-occupation\",\n \"valueString\": \"Housewife\"\n },\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/patient-nationality\",\n \"extension\": [\n {\n \"url\": \"code\",\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"urn:iso:std:iso:3166\",\n \"code\": \"{{countryCode}}\"\n }\n ]\n }\n },\n {\n \"url\": \"period\",\n \"valuePeriod\": {\n \"start\": \"\",\n \"end\": \"\"\n }\n }\n ]\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/educational-attainment\",\n \"valueString\": \"POST_SECONDARY_ISCED_4\"\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:b74fbd0e-8536-4c11-833d-781e89a4b553\",\n \"resource\": {\n \"resourceType\": \"RelatedPerson\",\n \"relationship\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/ValueSet/relatedperson-relationshiptype\",\n \"code\": \"MOTHER\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"urn:uuid:d9d3a8c8-6a47-47a1-be86-0493a4ec55a7\"\n }\n }\n },\n {\n \"fullUrl\": \"urn:uuid:ad1e15bb-51da-449a-8a12-c7dae10728e4\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"active\": true,\n \"identifier\": [\n {\n \"use\": \"official\",\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/identifier-type\",\n \"code\": \"NATIONAL_ID\"\n }\n ]\n },\n \"value\": \"6848901132\"\n }\n ],\n \"name\": [\n {\n \"use\": \"en\",\n \"family\": [\n \"Ratke\"\n ],\n \"given\": [\n \"Dad\"\n ]\n }\n ],\n \"gender\": \"male\",\n \"telecom\": [\n {\n \"use\": \"mobile\",\n \"system\": \"phone\",\n \"value\": \"+260759205190\"\n }\n ],\n \"birthDate\": \"2002-06-29\",\n \"deceasedBoolean\": false,\n \"multipleBirthInteger\": 2,\n \"maritalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/StructureDefinition/marital-status\",\n \"code\": \"M\"\n }\n ],\n \"text\": \"MARRIED\"\n },\n \"address\": [\n {\n \"type\": \"PRIMARY_ADDRESS\",\n \"line\": [\n \"12\",\n \"Usual Street\",\n \"Usual Residental Area\",\n \"\",\n \"\",\n \"URBAN\"\n ],\n \"city\": \"Madgeland\",\n \"district\": \"{{districtId}}\",\n \"state\": \"{{stateId}}\",\n \"postalCode\": \"52275\",\n \"country\": \"{{countryCode}}\"\n }\n ],\n \"extension\": [\n {\n \"url\": \"http://opencrvs.org/specs/extension/patient-occupation\",\n \"valueString\": \"Businessman\"\n },\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/patient-nationality\",\n \"extension\": [\n {\n \"url\": \"code\",\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"urn:iso:std:iso:3166\",\n \"code\": \"FAR\"\n }\n ]\n }\n },\n {\n \"url\": \"period\",\n \"valuePeriod\": {\n \"start\": \"\",\n \"end\": \"\"\n }\n }\n ]\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/educational-attainment\",\n \"valueString\": \"POST_SECONDARY_ISCED_4\"\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:7cb1d9cc-ea4b-4046-bea0-38bdf3082f56\",\n \"resource\": {\n \"resourceType\": \"Encounter\",\n \"status\": \"finished\",\n \"location\": [\n {\n \"location\": {\n \"reference\": \"Location/{{facilityId}}\"\n }\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:45c68568-2ca0-4932-9731-535dd4180fe0\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"status\": \"final\",\n \"context\": {\n \"reference\": \"urn:uuid:7cb1d9cc-ea4b-4046-bea0-38bdf3082f56\"\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/observation-category\",\n \"code\": \"procedure\",\n \"display\": \"Procedure\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"57722-1\",\n \"display\": \"Birth plurality of Pregnancy\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": \"SINGLE\"\n }\n }\n },\n {\n \"fullUrl\": \"urn:uuid:d2d3d5b8-658e-4c29-9ec5-cb2431b4ddf3\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"status\": \"final\",\n \"context\": {\n \"reference\": \"urn:uuid:7cb1d9cc-ea4b-4046-bea0-38bdf3082f56\"\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/observation-category\",\n \"code\": \"vital-signs\",\n \"display\": \"Vital Signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"3141-9\",\n \"display\": \"Body weight Measured\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": 4,\n \"unit\": \"kg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"kg\"\n }\n }\n },\n {\n \"fullUrl\": \"urn:uuid:706905cf-7e5d-4d9f-866a-a3795780a990\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"status\": \"final\",\n \"context\": {\n \"reference\": \"urn:uuid:7cb1d9cc-ea4b-4046-bea0-38bdf3082f56\"\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/observation-category\",\n \"code\": \"procedure\",\n \"display\": \"Procedure\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"73764-3\",\n \"display\": \"Birth attendant title\"\n }\n ]\n },\n \"valueString\": \"PHYSICIAN\"\n }\n }\n ]\n}", "options": { "raw": { "language": "json" @@ -34,7 +34,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\n \"resourceType\": \"Bundle\",\n \"type\": \"document\",\n \"meta\": {\n \"lastUpdated\": \"2022-08-14T14:43:47.000Z\"\n },\n \"entry\": [\n {\n \"fullUrl\": \"urn:uuid:37dd8e55-69c0-493d-b1a0-b7462a1d806a\",\n \"resource\": {\n \"identifier\": {\n \"system\": \"urn:ietf:rfc:3986\",\n \"value\": \"8f793c5a-3d53-4c9b-898b-1c04759716c6\"\n },\n \"resourceType\": \"Composition\",\n \"status\": \"final\",\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-types\",\n \"code\": \"birth-notification\"\n }\n ],\n \"text\": \"Birth Notification\"\n },\n \"class\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/classes\",\n \"code\": \"crvs-document\"\n }\n ],\n \"text\": \"CRVS Document\"\n },\n \"subject\": {\n \"reference\": \"urn:uuid:760c393e-4dc3-4572-83f6-b70765963ef1\"\n },\n \"date\": \"2022-08-14T14:43:47.000Z\",\n \"title\": \"Birth Notification\",\n \"section\": [\n {\n \"title\": \"Child details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/sections\",\n \"code\": \"child-details\"\n }\n ],\n \"text\": \"Child details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:760c393e-4dc3-4572-83f6-b70765963ef1\"\n }\n ]\n },\n {\n \"title\": \"Birth encounter\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/sections\",\n \"code\": \"birth-encounter\"\n }\n ],\n \"text\": \"Birth encounter\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:7cb1d9cc-ea4b-4046-bea0-38bdf3082f56\"\n }\n ]\n },\n {\n \"title\": \"Mother's details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/sections\",\n \"code\": \"mother-details\"\n }\n ],\n \"text\": \"Mother's details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:d9d3a8c8-6a47-47a1-be86-0493a4ec55a7\"\n }\n ]\n },\n {\n \"title\": \"Informant's details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/sections\",\n \"code\": \"informant-details\"\n }\n ],\n \"text\": \"Informant's details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:b74fbd0e-8536-4c11-833d-781e89a4b553\"\n }\n ]\n },\n {\n \"title\": \"Father's details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-sections\",\n \"code\": \"father-details\"\n }\n ],\n \"text\": \"Father's details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:ad1e15bb-51da-449a-8a12-c7dae10728e4\"\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:8546aaf3-8a60-4150-bc24-ab5579bc0fa2\",\n \"resource\": {\n \"resourceType\": \"Task\",\n \"status\": \"draft\",\n \"intent\": \"unknown\",\n \"identifier\": [],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/types\",\n \"code\": \"BIRTH\"\n }\n ]\n },\n \"focus\": {\n \"reference\": \"urn:uuid:37dd8e55-69c0-493d-b1a0-b7462a1d806a\"\n },\n \"extension\": [\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person\",\n \"valueString\": \"MOTHER\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person-phone-number\",\n \"valueString\": \"+260759205190\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person-email\",\n \"valueString\": \"axon@gmail.com\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/timeLoggedMS\",\n \"valueInteger\": 0\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/in-complete-fields\",\n \"valueString\": \"N/A\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/regLastLocation\",\n \"valueReference\": {\n \"reference\": \"Location/{{officeLocationId}}\"\n }\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/regLastOffice\",\n \"valueReference\": {\n \"reference\": \"Location/{{officeId}}\"\n }\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:760c393e-4dc3-4572-83f6-b70765963ef1\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"active\": true,\n \"name\": [\n {\n \"use\": \"en\",\n \"family\": [\n \"Min\"\n ],\n \"given\": [\n \"Child\"\n ]\n }\n ],\n \"gender\": \"male\",\n \"birthDate\": \"2022-06-29\",\n \"deceasedBoolean\": false,\n \"multipleBirthBoolean\": false\n }\n },\n {\n \"fullUrl\": \"urn:uuid:d9d3a8c8-6a47-47a1-be86-0493a4ec55a7\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"active\": true,\n \"name\": [\n {\n \"use\": \"en\",\n \"family\": [\n \"Ratke\"\n ],\n \"given\": [\n \"Mom\"\n ]\n }\n ],\n \"gender\": \"female\",\n \"birthDate\": \"2002-06-29\",\n \"deceasedBoolean\": false,\n \"multipleBirthBoolean\": false,\n \"address\": [\n {\n \"type\": \"PRIMARY_ADDRESS\",\n \"line\": [\n \"\",\n \"\",\n \"\",\n \"\",\n \"\",\n \"URBAN\"\n ],\n \"city\": \"Meghnan\",\n \"district\": \"{{districtId}}\",\n \"state\": \"{{stateId}}\",\n \"postalCode\": \"52275\",\n \"country\": \"{{countryCode}}\"\n }\n ],\n \"extension\": [\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/patient-nationality\",\n \"extension\": [\n {\n \"url\": \"code\",\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"urn:iso:std:iso:3166\",\n \"code\": \"{{countryCode}}\"\n }\n ]\n }\n },\n {\n \"url\": \"period\",\n \"valuePeriod\": {\n \"start\": \"\",\n \"end\": \"\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:b74fbd0e-8536-4c11-833d-781e89a4b553\",\n \"resource\": {\n \"resourceType\": \"RelatedPerson\",\n \"relationship\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/ValueSet/relatedperson-relationshiptype\",\n \"code\": \"MOTHER\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"urn:uuid:d9d3a8c8-6a47-47a1-be86-0493a4ec55a7\"\n }\n }\n },\n {\n \"fullUrl\": \"urn:uuid:ad1e15bb-51da-449a-8a12-c7dae10728e4\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"active\": true,\n \"name\": [\n {\n \"use\": \"en\",\n \"family\": [\n \"Ratke\"\n ],\n \"given\": [\n \"Dad\"\n ]\n }\n ],\n \"gender\": \"male\",\n \"birthDate\": \"2002-06-29\",\n \"deceasedBoolean\": false,\n \"multipleBirthBoolean\": false,\n \"address\": [\n {\n \"type\": \"PRIMARY_ADDRESS\",\n \"line\": [\n \"\",\n \"\",\n \"\",\n \"\",\n \"\",\n \"URBAN\"\n ],\n \"city\": \"Meghnan\",\n \"district\": \"{{districtId}}\",\n \"state\": \"{{stateId}}\",\n \"postalCode\": \"52275\",\n \"country\": \"{{countryCode}}\"\n }\n ],\n \"extension\": [\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/patient-nationality\",\n \"extension\": [\n {\n \"url\": \"code\",\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"urn:iso:std:iso:3166\",\n \"code\": \"{{countryCode}}\"\n }\n ]\n }\n },\n {\n \"url\": \"period\",\n \"valuePeriod\": {\n \"start\": \"\",\n \"end\": \"\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:7cb1d9cc-ea4b-4046-bea0-38bdf3082f56\",\n \"resource\": {\n \"resourceType\": \"Encounter\",\n \"status\": \"finished\",\n \"location\": [\n {\n \"location\": {\n \"reference\": \"Location/{{facilityId}}\"\n }\n }\n ]\n }\n }\n ]\n}", + "raw": "{\n \"resourceType\": \"Bundle\",\n \"type\": \"document\",\n \"meta\": {\n \"lastUpdated\": \"2022-08-14T14:43:47.000Z\"\n },\n \"entry\": [\n {\n \"fullUrl\": \"urn:uuid:37dd8e55-69c0-493d-b1a0-b7462a1d806a\",\n \"resource\": {\n \"identifier\": {\n \"system\": \"urn:ietf:rfc:3986\",\n \"value\": \"8f793c5a-3d53-4c9b-898b-1c04759716c6\"\n },\n \"resourceType\": \"Composition\",\n \"status\": \"final\",\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-types\",\n \"code\": \"birth-notification\"\n }\n ],\n \"text\": \"Birth Notification\"\n },\n \"class\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/classes\",\n \"code\": \"crvs-document\"\n }\n ],\n \"text\": \"CRVS Document\"\n },\n \"subject\": {\n \"reference\": \"urn:uuid:760c393e-4dc3-4572-83f6-b70765963ef1\"\n },\n \"date\": \"2022-08-14T14:43:47.000Z\",\n \"title\": \"Birth Notification\",\n \"section\": [\n {\n \"title\": \"Child details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/sections\",\n \"code\": \"child-details\"\n }\n ],\n \"text\": \"Child details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:760c393e-4dc3-4572-83f6-b70765963ef1\"\n }\n ]\n },\n {\n \"title\": \"Birth encounter\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/sections\",\n \"code\": \"birth-encounter\"\n }\n ],\n \"text\": \"Birth encounter\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:7cb1d9cc-ea4b-4046-bea0-38bdf3082f56\"\n }\n ]\n },\n {\n \"title\": \"Mother's details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/sections\",\n \"code\": \"mother-details\"\n }\n ],\n \"text\": \"Mother's details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:d9d3a8c8-6a47-47a1-be86-0493a4ec55a7\"\n }\n ]\n },\n {\n \"title\": \"Informant's details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/sections\",\n \"code\": \"informant-details\"\n }\n ],\n \"text\": \"Informant's details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:b74fbd0e-8536-4c11-833d-781e89a4b553\"\n }\n ]\n },\n {\n \"title\": \"Father's details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-sections\",\n \"code\": \"father-details\"\n }\n ],\n \"text\": \"Father's details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:ad1e15bb-51da-449a-8a12-c7dae10728e4\"\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:8546aaf3-8a60-4150-bc24-ab5579bc0fa2\",\n \"resource\": {\n \"resourceType\": \"Task\",\n \"status\": \"draft\",\n \"intent\": \"unknown\",\n \"identifier\": [],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/types\",\n \"code\": \"BIRTH\"\n }\n ]\n },\n \"focus\": {\n \"reference\": \"urn:uuid:37dd8e55-69c0-493d-b1a0-b7462a1d806a\"\n },\n \"extension\": [\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person\",\n \"valueString\": \"MOTHER\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person-phone-number\",\n \"valueString\": \"+260759205190\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person-email\",\n \"valueString\": \"axon@gmail.com\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/timeLoggedMS\",\n \"valueInteger\": 0\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/in-complete-fields\",\n \"valueString\": \"N/A\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/regLastOffice\",\n \"valueReference\": {\n \"reference\": \"Location/{{officeId}}\"\n }\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:760c393e-4dc3-4572-83f6-b70765963ef1\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"active\": true,\n \"name\": [\n {\n \"use\": \"en\",\n \"family\": [\n \"Min\"\n ],\n \"given\": [\n \"Child\"\n ]\n }\n ],\n \"gender\": \"male\",\n \"birthDate\": \"2022-06-29\",\n \"deceasedBoolean\": false,\n \"multipleBirthBoolean\": false\n }\n },\n {\n \"fullUrl\": \"urn:uuid:d9d3a8c8-6a47-47a1-be86-0493a4ec55a7\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"active\": true,\n \"name\": [\n {\n \"use\": \"en\",\n \"family\": [\n \"Ratke\"\n ],\n \"given\": [\n \"Mom\"\n ]\n }\n ],\n \"gender\": \"female\",\n \"birthDate\": \"2002-06-29\",\n \"deceasedBoolean\": false,\n \"multipleBirthBoolean\": false,\n \"address\": [\n {\n \"type\": \"PRIMARY_ADDRESS\",\n \"line\": [\n \"\",\n \"\",\n \"\",\n \"\",\n \"\",\n \"URBAN\"\n ],\n \"city\": \"Meghnan\",\n \"district\": \"{{districtId}}\",\n \"state\": \"{{stateId}}\",\n \"postalCode\": \"52275\",\n \"country\": \"{{countryCode}}\"\n }\n ],\n \"extension\": [\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/patient-nationality\",\n \"extension\": [\n {\n \"url\": \"code\",\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"urn:iso:std:iso:3166\",\n \"code\": \"{{countryCode}}\"\n }\n ]\n }\n },\n {\n \"url\": \"period\",\n \"valuePeriod\": {\n \"start\": \"\",\n \"end\": \"\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:b74fbd0e-8536-4c11-833d-781e89a4b553\",\n \"resource\": {\n \"resourceType\": \"RelatedPerson\",\n \"relationship\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/ValueSet/relatedperson-relationshiptype\",\n \"code\": \"MOTHER\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"urn:uuid:d9d3a8c8-6a47-47a1-be86-0493a4ec55a7\"\n }\n }\n },\n {\n \"fullUrl\": \"urn:uuid:ad1e15bb-51da-449a-8a12-c7dae10728e4\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"active\": true,\n \"name\": [\n {\n \"use\": \"en\",\n \"family\": [\n \"Ratke\"\n ],\n \"given\": [\n \"Dad\"\n ]\n }\n ],\n \"gender\": \"male\",\n \"birthDate\": \"2002-06-29\",\n \"deceasedBoolean\": false,\n \"multipleBirthBoolean\": false,\n \"address\": [\n {\n \"type\": \"PRIMARY_ADDRESS\",\n \"line\": [\n \"\",\n \"\",\n \"\",\n \"\",\n \"\",\n \"URBAN\"\n ],\n \"city\": \"Meghnan\",\n \"district\": \"{{districtId}}\",\n \"state\": \"{{stateId}}\",\n \"postalCode\": \"52275\",\n \"country\": \"{{countryCode}}\"\n }\n ],\n \"extension\": [\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/patient-nationality\",\n \"extension\": [\n {\n \"url\": \"code\",\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"urn:iso:std:iso:3166\",\n \"code\": \"{{countryCode}}\"\n }\n ]\n }\n },\n {\n \"url\": \"period\",\n \"valuePeriod\": {\n \"start\": \"\",\n \"end\": \"\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:7cb1d9cc-ea4b-4046-bea0-38bdf3082f56\",\n \"resource\": {\n \"resourceType\": \"Encounter\",\n \"status\": \"finished\",\n \"location\": [\n {\n \"location\": {\n \"reference\": \"Location/{{facilityId}}\"\n }\n }\n ]\n }\n }\n ]\n}", "options": { "raw": { "language": "json" @@ -56,7 +56,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\n \"resourceType\": \"Bundle\",\n \"type\": \"document\",\n \"entry\": [\n {\n \"fullUrl\": \"urn:uuid:56e7d617-1011-4ca1-863f-3b7262709329\",\n \"resource\": {\n \"identifier\": {\n \"system\": \"urn:ietf:rfc:3986\",\n \"value\": \"56e7d617-1011-4ca1-863f-3b7262709329\"\n },\n \"resourceType\": \"Composition\",\n \"status\": \"preliminary\",\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-types\",\n \"code\": \"death-notification\"\n }\n ],\n \"text\": \"Death Notification\"\n },\n \"class\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-classes\",\n \"code\": \"crvs-document\"\n }\n ],\n \"text\": \"CRVS Document\"\n },\n \"title\": \"Death Notification\",\n \"section\": [\n {\n \"title\": \"Informant's details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-sections\",\n \"code\": \"informant-details\"\n }\n ],\n \"text\": \"Informant's details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:9ae636db-f7ad-47aa-9e8a-5bb651482084\"\n }\n ]\n },\n {\n \"title\": \"Spouse's details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-sections\",\n \"code\": \"spouse-details\"\n }\n ],\n \"text\": \"Spouse's details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:398afc2a-09c9-4b7b-bc45-2bef06501cf0\"\n }\n ]\n },\n {\n \"title\": \"Deceased details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-sections\",\n \"code\": \"deceased-details\"\n }\n ],\n \"text\": \"Deceased details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:5c192954-d798-402f-a539-31aada34d005\"\n }\n ]\n },\n {\n \"title\": \"Death encounter\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/sections\",\n \"code\": \"death-encounter\"\n }\n ],\n \"text\": \"Death encounter\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:8de42635-6dac-4d59-96b4-943ceb40ad1e\"\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:d3bdcf50-f6b9-40aa-a30b-d9515275becc\",\n \"resource\": {\n \"resourceType\": \"Task\",\n \"status\": \"draft\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/types\",\n \"code\": \"DEATH\"\n }\n ]\n },\n \"focus\": {\n \"reference\": \"urn:uuid:56e7d617-1011-4ca1-863f-3b7262709329\"\n },\n \"identifier\": [],\n \"extension\": [\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person\",\n \"valueString\": \"SPOUSE\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person-phone-number\",\n \"valueString\": \"+260712345679\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person-email\",\n \"valueString\": \"axon@gmail.com\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/timeLoggedMS\",\n \"valueInteger\": 0\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/in-complete-fields\",\n \"valueString\": \"N/A\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/regLastLocation\",\n \"valueReference\": {\n \"reference\": \"Location/{{officeLocationId}}\"\n }\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/regLastOffice\",\n \"valueReference\": {\n \"reference\": \"Location/{{officeId}}\"\n }\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:9ae636db-f7ad-47aa-9e8a-5bb651482084\",\n \"resource\": {\n \"resourceType\": \"RelatedPerson\",\n \"relationship\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/ValueSet/relatedperson-relationshiptype\",\n \"code\": \"SPOUSE\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"urn:uuid:398afc2a-09c9-4b7b-bc45-2bef06501cf0\"\n }\n }\n },\n {\n \"fullUrl\": \"urn:uuid:5c192954-d798-402f-a539-31aada34d005\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"active\": true,\n \"name\": [\n {\n \"use\": \"en\",\n \"given\": [\n \"Salam\"\n ],\n \"family\": [\n \"Ahmed\"\n ]\n }\n ],\n \"gender\": \"male\",\n \"birthDate\": \"1975-12-12\",\n \"address\": [\n {\n \"type\": \"PRIMARY_ADDRESS\",\n \"line\": [\n \"\",\n \"\",\n \"\",\n \"\",\n \"\",\n \"URBAN\"\n ],\n \"city\": \"Meghnan\",\n \"district\": \"{{districtId}}\",\n \"state\": \"{{stateId}}\",\n \"postalCode\": \"52275\",\n \"country\": \"{{countryCode}}\"\n }\n ],\n \"deceasedBoolean\": true,\n \"deceasedDateTime\": \"2021-11-12\",\n \"extension\": [\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/patient-nationality\",\n \"extension\": [\n {\n \"url\": \"code\",\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"urn:iso:std:iso:3166\",\n \"code\": \"{{countryCode}}\"\n }\n ]\n }\n },\n {\n \"url\": \"period\",\n \"valuePeriod\": {\n \"start\": \"\",\n \"end\": \"\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:398afc2a-09c9-4b7b-bc45-2bef06501cf0\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"active\": true,\n \"name\": [\n {\n \"use\": \"en\",\n \"given\": [\n \"Anjum\"\n ],\n \"family\": [\n \"Begum\"\n ]\n }\n ],\n \"birthDate\": \"1985-12-12\",\n \"deceasedBoolean\": false,\n \"multipleBirthBoolean\": false,\n \"address\": [\n {\n \"type\": \"PRIMARY_ADDRESS\",\n \"line\": [\n \"\",\n \"\",\n \"\",\n \"\",\n \"\",\n \"URBAN\"\n ],\n \"city\": \"Meghnan\",\n \"district\": \"{{districtId}}\",\n \"state\": \"{{stateId}}\",\n \"postalCode\": \"52275\",\n \"country\": \"{{countryCode}}\"\n }\n ],\n \"extension\": [\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/patient-nationality\",\n \"extension\": [\n {\n \"url\": \"code\",\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"urn:iso:std:iso:3166\",\n \"code\": \"{{countryCode}}\"\n }\n ]\n }\n },\n {\n \"url\": \"period\",\n \"valuePeriod\": {\n \"start\": \"\",\n \"end\": \"\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:8de42635-6dac-4d59-96b4-943ceb40ad1e\",\n \"resource\": {\n \"resourceType\": \"Encounter\",\n \"status\": \"finished\",\n \"location\": [\n {\n \"location\": {\n \"reference\": \"Location/{{facilityId}}\"\n }\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:6a0bd2db-4fa4-4665-ad62-24821dd01f2a\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"status\": \"final\",\n \"context\": {\n \"reference\": \"urn:uuid:8de42635-6dac-4d59-96b4-943ceb40ad1e\"\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/observation-category\",\n \"code\": \"vital-signs\",\n \"display\": \"Vital Signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"cause-of-death-established\",\n \"display\": \"Cause of death established\"\n }\n ]\n },\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/cause-of-death-established\",\n \"code\": \"false\"\n }\n ]\n }\n }\n }\n ],\n \"meta\": {\n \"lastUpdated\": \"2022-11-30T05:59:51.196Z\"\n }\n}", + "raw": "{\n \"resourceType\": \"Bundle\",\n \"type\": \"document\",\n \"entry\": [\n {\n \"fullUrl\": \"urn:uuid:56e7d617-1011-4ca1-863f-3b7262709329\",\n \"resource\": {\n \"identifier\": {\n \"system\": \"urn:ietf:rfc:3986\",\n \"value\": \"56e7d617-1011-4ca1-863f-3b7262709329\"\n },\n \"resourceType\": \"Composition\",\n \"status\": \"preliminary\",\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-types\",\n \"code\": \"death-notification\"\n }\n ],\n \"text\": \"Death Notification\"\n },\n \"class\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-classes\",\n \"code\": \"crvs-document\"\n }\n ],\n \"text\": \"CRVS Document\"\n },\n \"title\": \"Death Notification\",\n \"section\": [\n {\n \"title\": \"Informant's details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-sections\",\n \"code\": \"informant-details\"\n }\n ],\n \"text\": \"Informant's details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:9ae636db-f7ad-47aa-9e8a-5bb651482084\"\n }\n ]\n },\n {\n \"title\": \"Deceased details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-sections\",\n \"code\": \"deceased-details\"\n }\n ],\n \"text\": \"Deceased details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:5c192954-d798-402f-a539-31aada34d005\"\n }\n ]\n },\n {\n \"title\": \"Death encounter\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/sections\",\n \"code\": \"death-encounter\"\n }\n ],\n \"text\": \"Death encounter\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:8de42635-6dac-4d59-96b4-943ceb40ad1e\"\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:d3bdcf50-f6b9-40aa-a30b-d9515275becc\",\n \"resource\": {\n \"resourceType\": \"Task\",\n \"status\": \"draft\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/types\",\n \"code\": \"DEATH\"\n }\n ]\n },\n \"focus\": {\n \"reference\": \"urn:uuid:56e7d617-1011-4ca1-863f-3b7262709329\"\n },\n \"identifier\": [],\n \"extension\": [\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person\",\n \"valueString\": \"SPOUSE\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person-phone-number\",\n \"valueString\": \"+260712345679\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person-email\",\n \"valueString\": \"axon@gmail.com\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/timeLoggedMS\",\n \"valueInteger\": 0\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/in-complete-fields\",\n \"valueString\": \"N/A\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/regLastOffice\",\n \"valueReference\": {\n \"reference\": \"Location/{{officeId}}\"\n }\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:9ae636db-f7ad-47aa-9e8a-5bb651482084\",\n \"resource\": {\n \"resourceType\": \"RelatedPerson\",\n \"relationship\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/ValueSet/relatedperson-relationshiptype\",\n \"code\": \"SPOUSE\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"urn:uuid:398afc2a-09c9-4b7b-bc45-2bef06501cf0\"\n }\n }\n },\n {\n \"fullUrl\": \"urn:uuid:5c192954-d798-402f-a539-31aada34d005\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"active\": true,\n \"name\": [\n {\n \"use\": \"en\",\n \"given\": [\n \"Salam\"\n ],\n \"family\": [\n \"Ahmed\"\n ]\n }\n ],\n \"gender\": \"male\",\n \"birthDate\": \"1975-12-12\",\n \"address\": [\n {\n \"type\": \"PRIMARY_ADDRESS\",\n \"line\": [\n \"\",\n \"\",\n \"\",\n \"\",\n \"\",\n \"URBAN\"\n ],\n \"city\": \"Meghnan\",\n \"district\": \"{{districtId}}\",\n \"state\": \"{{stateId}}\",\n \"postalCode\": \"52275\",\n \"country\": \"{{countryCode}}\"\n }\n ],\n \"deceasedBoolean\": true,\n \"deceasedDateTime\": \"2021-11-12\",\n \"extension\": [\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/patient-nationality\",\n \"extension\": [\n {\n \"url\": \"code\",\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"urn:iso:std:iso:3166\",\n \"code\": \"{{countryCode}}\"\n }\n ]\n }\n },\n {\n \"url\": \"period\",\n \"valuePeriod\": {\n \"start\": \"\",\n \"end\": \"\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:398afc2a-09c9-4b7b-bc45-2bef06501cf0\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"active\": true,\n \"name\": [\n {\n \"use\": \"en\",\n \"given\": [\n \"Anjum\"\n ],\n \"family\": [\n \"Begum\"\n ]\n }\n ],\n \"birthDate\": \"1985-12-12\",\n \"deceasedBoolean\": false,\n \"multipleBirthBoolean\": false,\n \"address\": [\n {\n \"type\": \"PRIMARY_ADDRESS\",\n \"line\": [\n \"\",\n \"\",\n \"\",\n \"\",\n \"\",\n \"URBAN\"\n ],\n \"city\": \"Meghnan\",\n \"district\": \"{{districtId}}\",\n \"state\": \"{{stateId}}\",\n \"postalCode\": \"52275\",\n \"country\": \"{{countryCode}}\"\n }\n ],\n \"extension\": [\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/patient-nationality\",\n \"extension\": [\n {\n \"url\": \"code\",\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"urn:iso:std:iso:3166\",\n \"code\": \"{{countryCode}}\"\n }\n ]\n }\n },\n {\n \"url\": \"period\",\n \"valuePeriod\": {\n \"start\": \"\",\n \"end\": \"\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:8de42635-6dac-4d59-96b4-943ceb40ad1e\",\n \"resource\": {\n \"resourceType\": \"Encounter\",\n \"status\": \"finished\",\n \"location\": [\n {\n \"location\": {\n \"reference\": \"Location/{{facilityId}}\"\n }\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:6a0bd2db-4fa4-4665-ad62-24821dd01f2a\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"status\": \"final\",\n \"context\": {\n \"reference\": \"urn:uuid:8de42635-6dac-4d59-96b4-943ceb40ad1e\"\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/observation-category\",\n \"code\": \"vital-signs\",\n \"display\": \"Vital Signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"cause-of-death-established\",\n \"display\": \"Cause of death established\"\n }\n ]\n },\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/cause-of-death-established\",\n \"code\": \"false\"\n }\n ]\n }\n }\n }\n ],\n \"meta\": {\n \"lastUpdated\": \"2022-11-30T05:59:51.196Z\"\n }\n}", "options": { "raw": { "language": "json" @@ -78,7 +78,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\n \"resourceType\": \"Bundle\",\n \"type\": \"document\",\n \"entry\": [\n {\n \"fullUrl\": \"urn:uuid:7109f150-6262-4798-835e-55b3e4dd4cfb\",\n \"resource\": {\n \"identifier\": {\n \"system\": \"urn:ietf:rfc:3986\",\n \"value\": \"7109f150-6262-4798-835e-55b3e4dd4cfb\"\n },\n \"resourceType\": \"Composition\",\n \"status\": \"preliminary\",\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-types\",\n \"code\": \"death-notification\"\n }\n ],\n \"text\": \"Death Notification\"\n },\n \"class\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-classes\",\n \"code\": \"crvs-document\"\n }\n ],\n \"text\": \"CRVS Document\"\n },\n \"title\": \"Death Notification\",\n \"section\": [\n {\n \"title\": \"Informant's details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-sections\",\n \"code\": \"informant-details\"\n }\n ],\n \"text\": \"Informant's details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:42061dc8-0d97-493a-94e4-e60d0f3fc070\"\n }\n ]\n },\n {\n \"title\": \"Spouse's details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-sections\",\n \"code\": \"spouse-details\"\n }\n ],\n \"text\": \"Spouse's details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:1363f62f-e34f-4c03-90f3-5fa1d40d0892\"\n }\n ]\n },\n {\n \"title\": \"Deceased details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-sections\",\n \"code\": \"deceased-details\"\n }\n ],\n \"text\": \"Deceased details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:233b56c8-aa3d-4d32-9d42-7afe1200fc4f\"\n }\n ]\n },\n {\n \"title\": \"Death encounter\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/sections\",\n \"code\": \"death-encounter\"\n }\n ],\n \"text\": \"Death encounter\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:e9e011f5-78dc-4e2f-8ce2-ea80e04a510f\"\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:cbce7430-3c63-457e-a6d8-ed3b35a97a64\",\n \"resource\": {\n \"resourceType\": \"Task\",\n \"status\": \"draft\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/types\",\n \"code\": \"DEATH\"\n }\n ]\n },\n \"focus\": {\n \"reference\": \"urn:uuid:7109f150-6262-4798-835e-55b3e4dd4cfb\"\n },\n \"identifier\": [],\n \"extension\": [\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person\",\n \"valueString\": \"SPOUSE\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person-phone-number\",\n \"valueString\": \"+260712345679\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person-email\",\n \"valueString\": \"axon@gmail.com\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/timeLoggedMS\",\n \"valueInteger\": 0\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/in-complete-fields\",\n \"valueString\": \"N/A\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/regLastLocation\",\n \"valueReference\": {\n \"reference\": \"Location/{{officeLocationId}}\"\n }\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/regLastOffice\",\n \"valueReference\": {\n \"reference\": \"Location/{{officeId}}\"\n }\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:1363f62f-e34f-4c03-90f3-5fa1d40d0892\",\n \"resource\": {\n \"resourceType\": \"RelatedPerson\",\n \"relationship\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/ValueSet/relatedperson-relationshiptype\",\n \"code\": \"SPOUSE\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"urn:uuid:42061dc8-0d97-493a-94e4-e60d0f3fc070\"\n }\n }\n },\n {\n \"fullUrl\": \"urn:uuid:233b56c8-aa3d-4d32-9d42-7afe1200fc4f\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"active\": true,\n \"identifier\": [\n {\n \"value\": \"1234123421\",\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/identifier-type\",\n \"code\": \"NATIONAL_ID\"\n }\n ]\n }\n }\n ],\n \"name\": [\n {\n \"use\": \"en\",\n \"given\": [\n \"Bashir\"\n ],\n \"family\": [\n \"Ahmed\"\n ]\n }\n ],\n \"gender\": \"male\",\n \"birthDate\": \"1971-12-12\",\n \"maritalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/StructureDefinition/marital-status\",\n \"code\": \"M\"\n }\n ],\n \"text\": \"MARRIED\"\n },\n \"address\": [\n {\n \"type\": \"PRIMARY_ADDRESS\",\n \"line\": [\n \"12\",\n \"Usual Street\",\n \"Usual Residental Area\",\n \"\",\n \"\",\n \"URBAN\"\n ],\n \"city\": \"Meghnan\",\n \"district\": \"{{districtId}}\",\n \"state\": \"{{stateId}}\",\n \"postalCode\": \"52275\",\n \"country\": \"{{countryCode}}\"\n }\n ],\n \"deceasedBoolean\": true,\n \"deceasedDateTime\": \"2021-12-12\",\n \"multipleBirthBoolean\": false,\n \"extension\": [\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/patient-nationality\",\n \"extension\": [\n {\n \"url\": \"code\",\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"urn:iso:std:iso:3166\",\n \"code\": \"{{countryCode}}\"\n }\n ]\n }\n },\n {\n \"url\": \"period\",\n \"valuePeriod\": {\n \"start\": \"\",\n \"end\": \"\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:42061dc8-0d97-493a-94e4-e60d0f3fc070\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"active\": true,\n \"identifier\": [\n {\n \"value\": \"4321234257\",\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/identifier-type\",\n \"code\": \"NATIONAL_ID\"\n }\n ]\n }\n }\n ],\n \"name\": [\n {\n \"use\": \"en\",\n \"given\": [\n \"Selena\"\n ],\n \"family\": [\n \"Begum\"\n ]\n }\n ],\n \"birthDate\": \"1980-12-12\",\n \"deceasedBoolean\": false,\n \"multipleBirthBoolean\": false,\n \"address\": [\n {\n \"type\": \"PRIMARY_ADDRESS\",\n \"line\": [\n \"12\",\n \"Usual Street\",\n \"Usual Residental Area\",\n \"\",\n \"\",\n \"URBAN\"\n ],\n \"city\": \"Meghnan\",\n \"district\": \"{{districtId}}\",\n \"state\": \"{{stateId}}\",\n \"postalCode\": \"52275\",\n \"country\": \"{{countryCode}}\"\n }\n ],\n \"extension\": [\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/patient-nationality\",\n \"extension\": [\n {\n \"url\": \"code\",\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"urn:iso:std:iso:3166\",\n \"code\": \"{{countryCode}}\"\n }\n ]\n }\n },\n {\n \"url\": \"period\",\n \"valuePeriod\": {\n \"start\": \"\",\n \"end\": \"\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:e9e011f5-78dc-4e2f-8ce2-ea80e04a510f\",\n \"resource\": {\n \"resourceType\": \"Encounter\",\n \"status\": \"finished\",\n \"location\": [\n {\n \"location\": {\n \"reference\": \"Location/{{facilityId}}\"\n }\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:7b4fcd33-5b39-463a-bbd4-4ac2e41e5f99\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"status\": \"final\",\n \"context\": {\n \"reference\": \"urn:uuid:e9e011f5-78dc-4e2f-8ce2-ea80e04a510f\"\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/observation-category\",\n \"code\": \"vital-signs\",\n \"display\": \"Vital Signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"uncertified-manner-of-death\",\n \"display\": \"Uncertified manner of death\"\n }\n ]\n },\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/manner-of-death\",\n \"code\": \"NATURAL_CAUSES\"\n }\n ]\n }\n }\n },\n {\n \"fullUrl\": \"urn:uuid:89c0605f-8eb8-4f58-98ff-317efe64e91f\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"status\": \"final\",\n \"context\": {\n \"reference\": \"urn:uuid:e9e011f5-78dc-4e2f-8ce2-ea80e04a510f\"\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/observation-category\",\n \"code\": \"vital-signs\",\n \"display\": \"Vital Signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"cause-of-death-method\",\n \"display\": \"Cause of death method\"\n }\n ]\n },\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/cause-of-death-method\",\n \"code\": \"PHYSICIAN\"\n }\n ]\n }\n }\n },\n {\n \"fullUrl\": \"urn:uuid:6a0bd2db-4fa4-4665-ad62-24821dd01f2a\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"status\": \"final\",\n \"context\": {\n \"reference\": \"urn:uuid:e9e011f5-78dc-4e2f-8ce2-ea80e04a510f\"\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/observation-category\",\n \"code\": \"vital-signs\",\n \"display\": \"Vital Signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"cause-of-death-established\",\n \"display\": \"Cause of death established\"\n }\n ]\n },\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/cause-of-death-established\",\n \"code\": \"true\"\n }\n ]\n }\n }\n }\n ],\n \"meta\": {\n \"lastUpdated\": \"2022-11-30T05:50:26.175Z\"\n }\n}", + "raw": "{\n \"resourceType\": \"Bundle\",\n \"type\": \"document\",\n \"entry\": [\n {\n \"fullUrl\": \"urn:uuid:7109f150-6262-4798-835e-55b3e4dd4cfb\",\n \"resource\": {\n \"identifier\": {\n \"system\": \"urn:ietf:rfc:3986\",\n \"value\": \"7109f150-6262-4798-835e-55b3e4dd4cfb\"\n },\n \"resourceType\": \"Composition\",\n \"status\": \"preliminary\",\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-types\",\n \"code\": \"death-notification\"\n }\n ],\n \"text\": \"Death Notification\"\n },\n \"class\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-classes\",\n \"code\": \"crvs-document\"\n }\n ],\n \"text\": \"CRVS Document\"\n },\n \"title\": \"Death Notification\",\n \"section\": [\n {\n \"title\": \"Informant's details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-sections\",\n \"code\": \"informant-details\"\n }\n ],\n \"text\": \"Informant's details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:1363f62f-e34f-4c03-90f3-5fa1d40d0892\"\n }\n ]\n },\n {\n \"title\": \"Deceased details\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/doc-sections\",\n \"code\": \"deceased-details\"\n }\n ],\n \"text\": \"Deceased details\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:233b56c8-aa3d-4d32-9d42-7afe1200fc4f\"\n }\n ]\n },\n {\n \"title\": \"Death encounter\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/sections\",\n \"code\": \"death-encounter\"\n }\n ],\n \"text\": \"Death encounter\"\n },\n \"entry\": [\n {\n \"reference\": \"urn:uuid:e9e011f5-78dc-4e2f-8ce2-ea80e04a510f\"\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:cbce7430-3c63-457e-a6d8-ed3b35a97a64\",\n \"resource\": {\n \"resourceType\": \"Task\",\n \"status\": \"draft\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/types\",\n \"code\": \"DEATH\"\n }\n ]\n },\n \"focus\": {\n \"reference\": \"urn:uuid:7109f150-6262-4798-835e-55b3e4dd4cfb\"\n },\n \"identifier\": [],\n \"extension\": [\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person\",\n \"valueString\": \"SPOUSE\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person-phone-number\",\n \"valueString\": \"+260712345679\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/contact-person-email\",\n \"valueString\": \"axon@gmail.com\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/timeLoggedMS\",\n \"valueInteger\": 0\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/in-complete-fields\",\n \"valueString\": \"N/A\"\n },\n {\n \"url\": \"http://opencrvs.org/specs/extension/regLastOffice\",\n \"valueReference\": {\n \"reference\": \"Location/{{officeId}}\"\n }\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:1363f62f-e34f-4c03-90f3-5fa1d40d0892\",\n \"resource\": {\n \"resourceType\": \"RelatedPerson\",\n \"relationship\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/ValueSet/relatedperson-relationshiptype\",\n \"code\": \"SPOUSE\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"urn:uuid:42061dc8-0d97-493a-94e4-e60d0f3fc070\"\n }\n }\n },\n {\n \"fullUrl\": \"urn:uuid:233b56c8-aa3d-4d32-9d42-7afe1200fc4f\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"active\": true,\n \"identifier\": [\n {\n \"value\": \"1234123421\",\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/identifier-type\",\n \"code\": \"NATIONAL_ID\"\n }\n ]\n }\n }\n ],\n \"name\": [\n {\n \"use\": \"en\",\n \"given\": [\n \"Bashir\"\n ],\n \"family\": [\n \"Ahmed\"\n ]\n }\n ],\n \"gender\": \"male\",\n \"birthDate\": \"1971-12-12\",\n \"maritalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/StructureDefinition/marital-status\",\n \"code\": \"M\"\n }\n ],\n \"text\": \"MARRIED\"\n },\n \"address\": [\n {\n \"type\": \"PRIMARY_ADDRESS\",\n \"line\": [\n \"12\",\n \"Usual Street\",\n \"Usual Residental Area\",\n \"\",\n \"\",\n \"URBAN\"\n ],\n \"city\": \"Meghnan\",\n \"district\": \"{{districtId}}\",\n \"state\": \"{{stateId}}\",\n \"postalCode\": \"52275\",\n \"country\": \"{{countryCode}}\"\n }\n ],\n \"deceasedBoolean\": true,\n \"deceasedDateTime\": \"2021-12-12\",\n \"multipleBirthBoolean\": false,\n \"extension\": [\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/patient-nationality\",\n \"extension\": [\n {\n \"url\": \"code\",\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"urn:iso:std:iso:3166\",\n \"code\": \"{{countryCode}}\"\n }\n ]\n }\n },\n {\n \"url\": \"period\",\n \"valuePeriod\": {\n \"start\": \"\",\n \"end\": \"\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:42061dc8-0d97-493a-94e4-e60d0f3fc070\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"active\": true,\n \"identifier\": [\n {\n \"value\": \"4321234257\",\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/identifier-type\",\n \"code\": \"NATIONAL_ID\"\n }\n ]\n }\n }\n ],\n \"name\": [\n {\n \"use\": \"en\",\n \"given\": [\n \"Selena\"\n ],\n \"family\": [\n \"Begum\"\n ]\n }\n ],\n \"birthDate\": \"1980-12-12\",\n \"deceasedBoolean\": false,\n \"multipleBirthBoolean\": false,\n \"address\": [\n {\n \"type\": \"PRIMARY_ADDRESS\",\n \"line\": [\n \"12\",\n \"Usual Street\",\n \"Usual Residental Area\",\n \"\",\n \"\",\n \"URBAN\"\n ],\n \"city\": \"Meghnan\",\n \"district\": \"{{districtId}}\",\n \"state\": \"{{stateId}}\",\n \"postalCode\": \"52275\",\n \"country\": \"{{countryCode}}\"\n }\n ],\n \"extension\": [\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/patient-nationality\",\n \"extension\": [\n {\n \"url\": \"code\",\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"urn:iso:std:iso:3166\",\n \"code\": \"{{countryCode}}\"\n }\n ]\n }\n },\n {\n \"url\": \"period\",\n \"valuePeriod\": {\n \"start\": \"\",\n \"end\": \"\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:e9e011f5-78dc-4e2f-8ce2-ea80e04a510f\",\n \"resource\": {\n \"resourceType\": \"Encounter\",\n \"status\": \"finished\",\n \"location\": [\n {\n \"location\": {\n \"reference\": \"Location/{{facilityId}}\"\n }\n }\n ]\n }\n },\n {\n \"fullUrl\": \"urn:uuid:7b4fcd33-5b39-463a-bbd4-4ac2e41e5f99\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"status\": \"final\",\n \"context\": {\n \"reference\": \"urn:uuid:e9e011f5-78dc-4e2f-8ce2-ea80e04a510f\"\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/observation-category\",\n \"code\": \"vital-signs\",\n \"display\": \"Vital Signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"uncertified-manner-of-death\",\n \"display\": \"Uncertified manner of death\"\n }\n ]\n },\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/manner-of-death\",\n \"code\": \"NATURAL_CAUSES\"\n }\n ]\n }\n }\n },\n {\n \"fullUrl\": \"urn:uuid:89c0605f-8eb8-4f58-98ff-317efe64e91f\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"status\": \"final\",\n \"context\": {\n \"reference\": \"urn:uuid:e9e011f5-78dc-4e2f-8ce2-ea80e04a510f\"\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/observation-category\",\n \"code\": \"vital-signs\",\n \"display\": \"Vital Signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"cause-of-death-method\",\n \"display\": \"Cause of death method\"\n }\n ]\n },\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/cause-of-death-method\",\n \"code\": \"PHYSICIAN\"\n }\n ]\n }\n }\n },\n {\n \"fullUrl\": \"urn:uuid:6a0bd2db-4fa4-4665-ad62-24821dd01f2a\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"status\": \"final\",\n \"context\": {\n \"reference\": \"urn:uuid:e9e011f5-78dc-4e2f-8ce2-ea80e04a510f\"\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/observation-category\",\n \"code\": \"vital-signs\",\n \"display\": \"Vital Signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"cause-of-death-established\",\n \"display\": \"Cause of death established\"\n }\n ]\n },\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://opencrvs.org/specs/cause-of-death-established\",\n \"code\": \"true\"\n }\n ]\n }\n }\n }\n ],\n \"meta\": {\n \"lastUpdated\": \"2022-11-30T05:50:26.175Z\"\n }\n}", "options": { "raw": { "language": "json" @@ -121,10 +121,6 @@ } ], "variable": [ - { - "key": "officeLocationId", - "value": "c24c0b72-11b5-4c1a-bbb7-61112fa6f481" - }, { "key": "officeId", "value": "0be1dc9b-5c8b-4d20-a88c-08cafc71c99a" diff --git a/src/form/index.ts b/src/form/index.ts index 4fc80de45..df9c4c8a3 100644 --- a/src/form/index.ts +++ b/src/form/index.ts @@ -14,15 +14,14 @@ import { birthForm } from './birth' import { deathForm } from './death' import { marriageForm } from './marriage' import { IForms, Event } from './types/types' -import { getUserOfficeLocationHierarchy } from '@countryconfig/utils/users' + +import { fetchUserLocationHierarchy } from '@countryconfig/utils/users' export async function formHandler(req: Request): Promise { - const addressHierarchy = ( - await getUserOfficeLocationHierarchy( - req.headers.authorization, - req.auth.credentials.sub as string - ) - ).map(({ id }) => id) + const addressHierarchy = await fetchUserLocationHierarchy( + req.headers.authorization, + req.auth.credentials.sub as string + ) // ====================== NOTE REGARDING MIGRATING FROM OPNCRVS v1.2 OR EARLIER ====================== // SIMPLY RETURN A JSON OF YOUR FULL FORM HERE, WITH THE ADDITION OF THE NEW MARRIAGE AND VERSION PROP diff --git a/src/form/marriage/index.ts b/src/form/marriage/index.ts index c88cab80b..213ffdeff 100644 --- a/src/form/marriage/index.ts +++ b/src/form/marriage/index.ts @@ -84,7 +84,7 @@ export const marriageForm: ISerializedForm = { { id: 'informant', viewType: 'form', - name: formMessageDescriptors.registrationName, + name: formMessageDescriptors.informantName, title: formMessageDescriptors.informantTitle, groups: [ { diff --git a/src/index.ts b/src/index.ts index e6166b8d0..b753400c1 100644 --- a/src/index.ts +++ b/src/index.ts @@ -375,6 +375,7 @@ export async function createServer() { handler: dashboardQueriesHandler, options: { tags: ['api'], + auth: false, description: 'Serves dashboard view refresher queries' } }) @@ -474,7 +475,7 @@ export async function createServer() { validate: { payload: emailSchema }, - description: 'Handles sending SMS' + description: 'Handles sending email using a predefined template file' } }) diff --git a/src/translations/client.csv b/src/translations/client.csv index 1cab2d872..bc9db2c32 100644 --- a/src/translations/client.csv +++ b/src/translations/client.csv @@ -383,7 +383,7 @@ constants.issueConfirmationMessage,Confirmation of issuance,Please confirm that constants.issueToBride,Issuing to bride,Issue to bride,Délivré à) la mariée constants.issueToFather,Issuing to father,Issue to father,Délivré au père constants.issueToGroom,Issuing to groom,Issue to groom,délivré au marié -constants.issueToInformant,Issuance of death to informant,Issue to informant ({informant}),Delivré à l'informateur +constants.issueToInformant,Issuance of death to informant,"Issue to informant ({informant, select, MOTHER {Mother} FATHER {Father} GRANDFATHER {Grandfather} GRANDMOTHER {Grandmother} BROTHER {Brother} SISTER {Sister} LEGAL_GUARDIAN {Legal guardian} BRIDE {Bride} GROOM {Groom} HEAD_OF_GROOM_FAMILY {Head of groom's family} HEAD_OF_BRIDE_FAMILY {Head of bride's family} SPOUSE {Spouse} SON {Son} DAUGHTER {Daughter} SON_IN_LAW {Son in law} DAUGHTER_IN_LAW {Daughter in law} GRANDSON {Grandson} GRANDDAUGHTER {Granddaughter} other {{informant}}})","Delivré à l'informateur ({informant, select, MOTHER {Mère} FATHER {Père} GRANDFATHER {Grand-père} GRANDMOTHER {Grand-mère} BROTHER {Frère} SISTER {Sœur} LEGAL_GUARDIAN {Tuteur légal} BRIDE {Mariée} GROOM {Marié} HEAD_OF_GROOM_FAMILY {Chef de la famille du marié} HEAD_OF_BRIDE_FAMILY {Chef de la famille de la mariée} SPOUSE {Conjoint} SON {Fils} DAUGHTER {Fille} SON_IN_LAW {Beau-fils} DAUGHTER_IN_LAW {Belle-fille} GRANDSON {Petit-fils} GRANDDAUGHTER {Petite-fille} other {{informant}}})" constants.issueToMother,Issuing to mother,Issue to mother,Délivré à la mère constants.issueToSomeoneElse,Issuing to someone else,Issue to someone else,Délivrer à quelqu'un d'autre constants.issuedBy,The issued by sec text,Issued by,Délivré par @@ -524,7 +524,7 @@ correction.corrector.groom,Label for groom option in certificate correction form correction.corrector.idCheck,,Check proof of ID,Vérifiez la preuve d'identité. Correspond-elle aux détails suivants ? correction.corrector.idCheckVerify,,Yes,Oui correction.corrector.idCheckWithoutVerify,,No,Non -correction.corrector.informant,Label for informant option in certificate correction form,Informant ({informant}),Informateur +correction.corrector.informant,Label for informant option in certificate correction form,"Informant ({informant, select, MOTHER {Mother} FATHER {Father} GRANDFATHER {Grandfather} GRANDMOTHER {Grandmother} BROTHER {Brother} SISTER {Sister} LEGAL_GUARDIAN {Legal guardian} BRIDE {Bride} GROOM {Groom} HEAD_OF_GROOM_FAMILY {Head of groom's family} HEAD_OF_BRIDE_FAMILY {Head of bride's family} SPOUSE {Spouse} SON {Son} DAUGHTER {Daughter} SON_IN_LAW {Son in law} DAUGHTER_IN_LAW {Daughter in law} GRANDSON {Grandson} GRANDDAUGHTER {Granddaughter} other {{informant}}})","Informateur ({informant, select, MOTHER {Mère} FATHER {Père} GRANDFATHER {Grand-père} GRANDMOTHER {Grand-mère} BROTHER {Frère} SISTER {Sœur} LEGAL_GUARDIAN {Tuteur légal} BRIDE {Mariée} GROOM {Marié} HEAD_OF_GROOM_FAMILY {Chef de la famille du marié} HEAD_OF_BRIDE_FAMILY {Chef de la famille de la mariée} SPOUSE {Conjoint} SON {Fils} DAUGHTER {Fille} SON_IN_LAW {Beau-fils} DAUGHTER_IN_LAW {Belle-fille} GRANDSON {Petit-fils} GRANDDAUGHTER {Petite-fille} other {{informant}}})" correction.corrector.legalGuardian,Label for legal guardian option in certificate correction form,Legal guardian,Tuteur légal correction.corrector.me,Label for registrar option in certificate correction form,Me,Moi correction.corrector.mother,Label for mother option in certificate correction form,Mother,Mère @@ -910,8 +910,10 @@ form.field.label.ageOfGroom,,Age of groom,Âge du marié form.field.label.ageOfInformant,,Age of informant,Âge de l'informateur form.field.label.ageOfMother,,Age of mother,Âge de la mère form.field.label.ageOfSpouse,,Age of spouse,Âge du conjoint +form.field.label.app.certifyRecordTo.bride,,Print and issue to bride,Imprimer et envoyer à la mariée form.field.label.app.certifyRecordTo.father,,Print and issue to father,Imprimer et remettre au père -form.field.label.app.certifyRecordTo.informant,,Print and issue to informant ({informant}),Imprimer et remettre à l'informateur ({informant}) +form.field.label.app.certifyRecordTo.groom,,Print and issue to groom,Imprimer et envoyer au marié +form.field.label.app.certifyRecordTo.informant,,"Print and issue to informant ({informant, select, MOTHER {Mother} FATHER {Father} GRANDFATHER {Grandfather} GRANDMOTHER {Grandmother} BROTHER {Brother} SISTER {Sister} LEGAL_GUARDIAN {Legal guardian} BRIDE {Bride} GROOM {Groom} HEAD_OF_GROOM_FAMILY {Head of groom's family} HEAD_OF_BRIDE_FAMILY {Head of bride's family} SPOUSE {Spouse} SON {Son} DAUGHTER {Daughter} SON_IN_LAW {Son in law} DAUGHTER_IN_LAW {Daughter in law} GRANDSON {Grandson} GRANDDAUGHTER {Granddaughter} other {{informant}}})","Imprimer et remettre à l'informateur ({informant, select, MOTHER {Mère} FATHER {Père} GRANDFATHER {Grand-père} GRANDMOTHER {Grand-mère} BROTHER {Frère} SISTER {Sœur} LEGAL_GUARDIAN {Tuteur légal} BRIDE {Mariée} GROOM {Marié} HEAD_OF_GROOM_FAMILY {Chef de la famille du marié} HEAD_OF_BRIDE_FAMILY {Chef de la famille de la mariée} SPOUSE {Conjoint} SON {Fils} DAUGHTER {Fille} SON_IN_LAW {Beau-fils} DAUGHTER_IN_LAW {Belle-fille} GRANDSON {Petit-fils} GRANDDAUGHTER {Petite-fille} other {{informant}}})" form.field.label.app.certifyRecordTo.mother,,Print and issue to mother,Imprimer et remettre à la mère form.field.label.app.phoneVerWarn,,Check with the informant that the mobile phone number you have entered is correct,Vérifiez auprès de l'informateur que le numéro de téléphone mobile que vous avez indiqué est correct. form.field.label.app.whoContDet.app,,Informant,Informateur @@ -1296,7 +1298,7 @@ form.section.accountDetails,,Account details,Coordonnées du compte form.section.assignedRegistrationOffice,,Assign to a registration office,A quel bureau voulez-vous affecter un nouvel utilisateur ? form.section.assignedRegistrationOfficeGroupTitle,,Assigned registration office,Bureau d'enregistrement assigné form.section.bride.headOfBrideFamily,,Head of bride's family,Chef de la famille de la mariée -form.section.bride.name,,Print and issue to bride,Imprimer et envoyer à la mariée +form.section.bride.name,,Bride,Mariée form.section.bride.title,,Bride's details,Détails de la mariée form.section.causeOfDeath.name,,Cause of Death,Cause du décès form.section.causeOfDeath.title,,What is the medically certified cause of death?,Quelle est la cause de décès médicalement certifiée ? @@ -1333,7 +1335,7 @@ form.section.documents.uploadImage,,Upload a photo of the supporting document,T form.section.father.name,,Father,Père form.section.father.title,,Father's details,Information du père form.section.groom.headOfGroomFamily,,Head of groom's family,Chef de la famille du marié -form.section.groom.name,,Print and issue to groom,Imprimer et envoyer au marié +form.section.groom.name,,Groom,Marié form.section.groom.title,,Groom's details,Détails du marié form.section.informant.name,,Informant,Informateur form.section.informant.title,,Informant's details,information de l'informateur diff --git a/src/utils/users.ts b/src/utils/users.ts index cf0266c1b..415c77bb5 100644 --- a/src/utils/users.ts +++ b/src/utils/users.ts @@ -1,38 +1,20 @@ -import { APPLICATION_CONFIG_URL, GATEWAY_URL } from '@countryconfig/constants' +import { GATEWAY_URL } from '@countryconfig/constants' import fetch from 'node-fetch' import gql from 'graphql-tag' import { print } from 'graphql/language/printer' -import { - Maybe, - Scalars, - HumanName, - Role, - Status, - SystemRoleType, - Location -} from '@countryconfig/data-generator/gateway' import { URL } from 'url' type GetUser = { - __typename?: 'User' - id: Scalars['ID'] - creationDate: Scalars['String'] - username?: Maybe - practitionerId: Scalars['String'] - mobile?: Maybe - systemRole: SystemRoleType - role: Role - status: Status - name: Array - primaryOffice?: { - __typename?: 'Location' - id: Scalars['ID'] - name?: Maybe - alias?: Maybe> - status?: Maybe + primaryOffice: { + hierarchy: Array<{ + id: string + }> } } -async function getUser(token: string, userId: string): Promise { +export async function fetchUserLocationHierarchy( + token: string, + userId: string +) { const url = new URL('graphql', GATEWAY_URL) const getUsersRes = await fetch(url, { method: 'POST', @@ -48,36 +30,11 @@ async function getUser(token: string, userId: string): Promise { query: print(gql` query fetchUser($userId: String!) { getUser(userId: $userId) { - id - creationDate - username - practitionerId - mobile - systemRole - role { - _id - labels { - lang - label - __typename - } - __typename - } - status - name { - use - firstNames - familyName - __typename - } primaryOffice { - id - name - alias - status - __typename + hierarchy { + id + } } - __typename } } `) @@ -88,28 +45,5 @@ async function getUser(token: string, userId: string): Promise { data: { getUser: GetUser } } - return res.data.getUser -} - -async function getLocationHierarchy(locationId: string): Promise { - const url = new URL( - `location/${locationId}/hierarchy`, - APPLICATION_CONFIG_URL - ) - const res = await fetch(url) - if (!res.ok) { - throw new Error('Unable to retrieve location hierarchy') - } - return res.json() -} - -export async function getUserOfficeLocationHierarchy( - token: string, - userId: string -): Promise { - const user = await getUser(token, userId) - if (!user.primaryOffice) { - throw new Error('No primary office found for user') - } - return getLocationHierarchy(user.primaryOffice.id) + return res.data.getUser.primaryOffice.hierarchy.map(({ id }) => id) }