diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..f9ba8cf65 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,9 @@ +# Microsoft Open Source Code of Conduct + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). + +Resources: + +- [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) +- [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) +- Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns diff --git a/GeoPol.xml b/GeoPol.xml index aeb0c626c..84bc44077 100644 --- a/GeoPol.xml +++ b/GeoPol.xml @@ -18,7 +18,6 @@ .gitignore GeoPol.xml - test diff --git a/README.md b/README.md index 2908f19cd..4d33df42a 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ FHIR Converter is an open source project that enables conversion of health data The first version of the FHIR Converter released to open source on Mar 6th, 2020. It used Handlebars template language and Javascript runtime. A new converter engine was released on Nov 13, 2020 that uses Liquid templating language and .Net runtime. -Currently, Microsoft supports two types of converter engines, Handlebars engine and Liquid engine, along with templates and filters. **We strongly recommend using the Liquid converter** for a better alignment with [Azure Healthcare APIs](https://docs.microsoft.com/azure/healthcare-apis/), [Azure API for FHIR](https://azure.microsoft.com/services/azure-api-for-fhir/), [FHIR Server for Azure](https://github.com/microsoft/fhir-server), and [Microsoft Logic Apps](https://azure.microsoft.com/services/logic-apps/). +Currently, Microsoft supports two types of converter engines, Handlebars engine and Liquid engine, along with templates and filters. **We strongly recommend using the Liquid converter** for a better alignment with [Azure Healthcare APIs](https://docs.microsoft.com/azure/healthcare-apis/), [Azure Health Data Services](https://azure.microsoft.com/en-us/services/health-data-services/#overview), [FHIR Server for Azure](https://github.com/microsoft/fhir-server), and [Microsoft Logic Apps](https://azure.microsoft.com/services/logic-apps/). The following table shows the differences between two converter engines: @@ -12,37 +12,37 @@ The following table shows the differences between two converter engines: | ----- | ----- | ----- | | **Template language** | [Handlebars](https://handlebarsjs.com/) | [Liquid](https://shopify.github.io/liquid/) | | **Template authoring tool** | Self-hosted web-app | [VS Code extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-health-fhir-converter)| -| **Supported conversions** | 1. HL7v2 to FHIR
2. C-CDA to FHIR | 1. HL7v2 to FHIR
2. C-CDA to FHIR
3. JSON to FHIR **(new!)** | -| **Available as** | 1. Self-deployed web service
(on-prem or on Azure)| 1. Command line tool
2. $convert-data operation in [FHIR Server for Azure (OSS)](https://github.com/microsoft/fhir-server/blob/main/docs/ConvertDataOperation.md)
3. $convert-data operation in both [Azure API for FHIR](https://docs.microsoft.com/azure/healthcare-apis/azure-api-for-fhir/convert-data) and [Azure Healthcare APIs (preview)](https://docs.microsoft.com/azure/healthcare-apis/fhir/convert-data)| +| **Supported conversions** | 1. HL7v2 to FHIR
2. C-CDA to FHIR | 1. HL7v2 to FHIR
2. C-CDA to FHIR
3. JSON to FHIR
4. FHIR STU3 to FHIR R4 **(new Command Line Tool!)** | +| **Available as** | 1. Self-deployed web service
(on-prem or on Azure)| 1. Command line tool
2. $convert-data operation in [FHIR Server for Azure (OSS)](https://github.com/microsoft/fhir-server/blob/main/docs/ConvertDataOperation.md)
3. $convert-data operation in both [Azure Health Data Services](https://docs.microsoft.com/en-us/azure/healthcare-apis/fhir/convert-data) and [Azure API for FHIR](https://docs.microsoft.com/azure/healthcare-apis/azure-api-for-fhir/convert-data)| ⚠ Rest of this document is about the Liquid converter. For the Handlebars converter, please refer to the [Handlebars branch](https://github.com/microsoft/FHIR-Converter/tree/handlebars). -Currently, FHIR Converter supports three types of conversions, **HL7v2 to FHIR**, **C-CDA to FHIR**, and **JSON to FHIR**. The converter uses templates that define mappings between these different data formats. The templates are written in [Liquid](https://shopify.github.io/liquid/) templating language and make use of custom [filters](docs/Filters-and-Tags.md). +Currently, FHIR Converter supports four types of conversions, **HL7v2 to FHIR**, **C-CDA to FHIR**, **JSON to FHIR** and **FHIR STU3 to FHIR R4**. The converter uses templates that define mappings between these different data formats. The templates are written in [Liquid](https://shopify.github.io/liquid/) templating language and make use of custom [filters](docs/Filters-and-Tags.md). The converter comes with a few ready-to-use templates. If needed, you can create a new template, or modify existing templates to meet your specific conversion requirements. -FHIR Converter with DotLiquid engine transforms the input data into FHIR bundles that are persisted to a FHIR server. The converter is integrated into both [Azure API for FHIR](https://docs.microsoft.com/azure/healthcare-apis/azure-api-for-fhir/) and [Azure Healthcare APIs (preview)](https://docs.microsoft.com/azure/healthcare-apis/), as well as in the open-source [FHIR Server](https://github.com/microsoft/fhir-server) as a [`$convert-data` operation](#using-convert-data-in-fhir-server). It is also available as a [command line tool](#using-command-line-tool). +FHIR Converter with DotLiquid engine transforms the input data into FHIR bundles that are persisted to a FHIR server. The converter is integrated into both [Azure Health Data Services](https://azure.microsoft.com/en-us/services/health-data-services/#overview) and [Azure API for FHIR](https://docs.microsoft.com/azure/healthcare-apis/azure-api-for-fhir/), as well as in the open-source [FHIR Server](https://github.com/microsoft/fhir-server) as a [`$convert-data` operation](#using-convert-data-in-fhir-server). It is also available as a [command line tool](#using-command-line-tool). ## Using $convert-data in FHIR server -The `$convert-data` operation is integrated into both Azure API for FHIR and FHIR server to run as part of the service. After enabling `$convert-data` in your server, you can make API calls in the form of ```<>/$convert-data``` to the server to convert your data into FHIR. In the API call request body, you would include parameters such as `inputData`, `inputDataType`, `templateCollectionReference`, and `rootTemplate`, to specify the message and the type of message you are converting. +The `$convert-data` operation is integrated into Azure Health Data Services, Azure API for FHIR and FHIR server to run as part of the service. After enabling `$convert-data` in your server, you can make API calls in the form of ```<>/$convert-data``` to the server to convert your data into FHIR. In the API call request body, you would include parameters such as `inputData`, `inputDataType`, `templateCollectionReference`, and `rootTemplate`, to specify the message and the type of message you are converting. For more information on configuring and using `$convert-data` operation on your server, please refer to these documentation: +- [$convert-data for Azure Health Data Services](https://docs.microsoft.com/en-us/azure/healthcare-apis/fhir/convert-data) - [$convert-data for Azure API for FHIR](https://docs.microsoft.com/azure/healthcare-apis/azure-api-for-fhir/convert-data) -- [$convert-data for Azure Healthcare APIs](https://docs.microsoft.com/azure/healthcare-apis/fhir/convert-data) - [$convert-data for FHIR Server](https://github.com/microsoft/fhir-server/blob/main/docs/ConvertDataOperation.md) ## Using Command line tool ### Supported parameters -The command line tool is another way of converting data, as well as managing templates. The tool converts a folder containing input messages (HL7v2, C-CDA, or JSON) into FHIR resources. It accepts the following parameters in the command line: +The command line tool is another way of converting data, as well as managing templates. The tool converts a folder containing input messages (HL7v2, C-CDA, JSON or FHIR STU3) into FHIR R4 resources. It accepts the following parameters in the command line: | Option | Name | Optionality | Default | Description | | ----- | ----- | ----- |----- |----- | | -d | TemplateDirectory | Required | | Root directory of templates. | -| -r | RootTemplate | Required | | Name of root template.

**HL7v2 to FHIR**: "ADT_A01", "ADT_A02", "ADT_A03", "ADT_A04", "ADT_A05", "ADT_A08", "ADT_A11", "ADT_A13", "ADT_A14", "ADT_A15", "ADT_A16", "ADT_A25", "ADT_A26", "ADT_A27", "ADT_A28", "ADT_A29", "ADT_A31", "ADT_A47", "ADT_A60", "OML_O21", "ORU_R01", "ORM_O01", "VXU_V04", "SIU_S12", "SIU_S13", "SIU_S14", "SIU_S15", "SIU_S16", "SIU_S17", "SIU_S26", "MDM_T01", "MDM_T02"

**C-CDA to FHIR**: "CCD", "ConsultationNote", "DischargeSummary", "HistoryandPhysical", "OperativeNote", "ProcedureNote", "ProgressNote", "ReferralNote", "TransferSummary"

**JSON to FHIR**: "Stu3ChargeItem", "ExamplePatient"
(*These JSON templates are sample templates for use, not default templates that adhere to any pre-defined JSON message types. JSON does not have any standardized message types, unlike HL7v2 messages or C-CDA documents. Therefore, instead of "default" templates we provide you with some sample templates that you can use as a starting guide for you to modify and customize.*) | +| -r | RootTemplate | Required | | Name of root template.

**HL7v2 to FHIR**: "ADT_A01", "ADT_A02", "ADT_A03", "ADT_A04", "ADT_A05", "ADT_A08", "ADT_A11", "ADT_A13", "ADT_A14", "ADT_A15", "ADT_A16", "ADT_A25", "ADT_A26", "ADT_A27", "ADT_A28", "ADT_A29", "ADT_A31", "ADT_A47", "ADT_A60", "OML_O21", "ORU_R01", "ORM_O01", "VXU_V04", "SIU_S12", "SIU_S13", "SIU_S14", "SIU_S15", "SIU_S16", "SIU_S17", "SIU_S26", "MDM_T01", "MDM_T02"

**C-CDA to FHIR**: "CCD", "ConsultationNote", "DischargeSummary", "HistoryandPhysical", "OperativeNote", "ProcedureNote", "ProgressNote", "ReferralNote", "TransferSummary"

**JSON to FHIR**: "Stu3ChargeItem", "ExamplePatient"
(*These JSON templates are sample templates for use, not default templates that adhere to any pre-defined JSON message types. JSON does not have any standardized message types, unlike HL7v2 messages or C-CDA documents. Therefore, instead of "default" templates we provide you with some sample templates that you can use as a starting guide for you to modify and customize.*)

**FHIR STU3 to R4**: Name of the root template that is the same as the STU3 resource name e.g., "Patient", "Observation", "Organization". Some of the STU3 resources are renamed or removed from R4. Please refer to [Resource differences and constraints for STU3 to R4](docs/Stu3R4-resources-differences.md). | | -c | InputDataContent | Optional| | Input data content. Specify OutputDataFile to get the results. | | -n | InputDataFile | Optional| | Input data file. Specify OutputDataFile to get the results. | | -f | OutputDataFile | Optional | | Output data file. | diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 000000000..e0dfff56a --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,41 @@ + + +## Security + +Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). + +If you believe you have found a security vulnerability in any Microsoft-owned repository that meets Microsoft's [Microsoft's definition of a security vulnerability](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10)) of a security vulnerability, please report it to us as described below. + +## Reporting Security Issues + +**Please do not report security vulnerabilities through public GitHub issues.** + +Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report). + +If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the the [Microsoft Security Response Center PGP Key page](https://www.microsoft.com/en-us/msrc/pgp-key-msrc). + +You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://www.microsoft.com/msrc). + +Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: + + * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) + * Full paths of source file(s) related to the manifestation of the issue + * The location of the affected source code (tag/branch/commit or direct URL) + * Any special configuration required to reproduce the issue + * Step-by-step instructions to reproduce the issue + * Proof-of-concept or exploit code (if possible) + * Impact of the issue, including how an attacker might exploit the issue + +This information will help us triage your report more quickly. + +If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) page for more details about our active programs. + +## Preferred Languages + +We prefer all communications to be in English. + +## Policy + +Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://www.microsoft.com/en-us/msrc/cvd). + + diff --git a/data/SampleData/Stu3/Account.json b/data/SampleData/Stu3/Account.json new file mode 100644 index 000000000..f2bb5e219 --- /dev/null +++ b/data/SampleData/Stu3/Account.json @@ -0,0 +1,56 @@ +{ + "resourceType": "Account", + "id": "example", + "text": { + "status": "generated", + "div": "
HACC Funded Billing for Peter James Chalmers
" + }, + "identifier": [ + { + "system": "urn:oid:0.1.2.3.4.5.6.7", + "value": "654321" + } + ], + "status": "active", + "type": { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/ActCode", + "code": "PBILLACCT", + "display": "patient billing account" + } + ], + "text": "patient" + }, + "name": "HACC Funded Billing for Peter James Chalmers", + "subject": { + "reference": "Patient/example", + "display": "Peter James Chalmers" + }, + "period": { + "start": "2016-01-01", + "end": "2016-06-30" + }, + "active": { + "start": "2016-01-01", + "end": "2016-06-30" + }, + "balance": { + "value": -1200, + "unit": "USD", + "system": "urn:iso:std:iso:4217", + "code": "USD" + }, + "coverage": [ + { + "coverage": { + "reference": "Coverage/7546D" + }, + "priority": 1 + } + ], + "owner": { + "reference": "Organization/hl7" + }, + "description": "Hospital charges" +} \ No newline at end of file diff --git a/data/SampleData/Stu3/ActivityDefinition.json b/data/SampleData/Stu3/ActivityDefinition.json new file mode 100644 index 000000000..05f1b4753 --- /dev/null +++ b/data/SampleData/Stu3/ActivityDefinition.json @@ -0,0 +1,304 @@ +{ + "resourceType": "ActivityDefinition", + "id": "citalopramPrescription", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: citalopramPrescription

contained: ,

url: http://motivemi.com/artifacts/ActivityDefinition/citalopramPrescription

identifier: citalopramPrescription (OFFICIAL)

version: 1.0.0

name: CitalopramPrescription

title: Citalopram Prescription

status: active

experimental: true

date: 15/08/2015

publisher: Motive Medical Intelligence

description: Citalopram 20 mg tablet 1 tablet oral 1 time daily now (30 table; 3 refills

purpose: Defines a guideline supported prescription for the treatment of depressive disorders

usage: This activity definition is used as part of various suicide risk order sets

approvalDate: 12/03/2016

lastReviewDate: 15/08/2016

effectivePeriod: 01/01/2016 --> 31/12/2017

useContext: , , , , , ,

jurisdiction: United States (Details : {urn:iso:std:iso:3166 code 'US' = 'United States)

topic: Mental Health Treatment (Details )

contributor:

contact:

copyright: © Copyright 2016 Motive Medical Intelligence. All rights reserved.

relatedArtifact: ,

kind: MedicationRequest

product: id: citalopramMedication; citalopram (Details : {RxNorm code '200371' = '200371); Tablet dose form (Details : {SNOMED CT code '385055001' = 'Tablet', given as 'Tablet dose form'})

dosage:

dynamicValue

description: dispenseRequest.numberOfRepeatsAllowed is three (3)

path: dispenseRequest.numberOfRepeatsAllowed

language: text/cql

expression: 3

dynamicValue

description: dispenseRequest.quantity is thirty (30) tablets

path: dispenseRequest.quantity

language: text/cql

expression: 30 '{tbl}'

" + }, + "contained": [ + { + "resourceType": "Medication", + "id": "citalopramMedication", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "200371" + } + ], + "text": "citalopram" + }, + "form": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "385055001", + "display": "Tablet dose form" + } + ], + "text": "Tablet dose form" + }, + "ingredient": [ + { + "itemReference": { + "reference": "#citalopramSubstance" + }, + "amount": { + "numerator": { + "value": 20, + "unit": "mg" + }, + "denominator": { + "value": 1, + "unit": "{tbl}" + } + } + } + ] + }, + { + "resourceType": "Substance", + "id": "citalopramSubstance", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2556" + } + ], + "text": "citalopram" + } + } + ], + "url": "http://motivemi.com/artifacts/ActivityDefinition/citalopramPrescription", + "identifier": [ + { + "use": "official", + "system": "http://motivemi.com", + "value": "citalopramPrescription" + } + ], + "version": "1.0.0", + "name": "CitalopramPrescription", + "title": "Citalopram Prescription", + "status": "active", + "experimental": true, + "date": "2015-08-15", + "publisher": "Motive Medical Intelligence", + "description": "Citalopram 20 mg tablet 1 tablet oral 1 time daily now (30 table; 3 refills", + "purpose": "Defines a guideline supported prescription for the treatment of depressive disorders", + "usage": "This activity definition is used as part of various suicide risk order sets", + "approvalDate": "2016-03-12", + "lastReviewDate": "2016-08-15", + "effectivePeriod": { + "start": "2016-01-01", + "end": "2017-12-31" + }, + "useContext": [ + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "age" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "https://meshb.nlm.nih.gov", + "code": "D000328", + "display": "Adult" + } + ] + } + }, + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "focus" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "87512008", + "display": "Mild major depression" + } + ] + } + }, + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "focus" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "40379007", + "display": "Major depression, recurrent, mild" + } + ] + } + }, + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "focus" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "225444004", + "display": "At risk for suicide (finding)" + } + ] + } + }, + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "focus" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "306206005", + "display": "Referral to service (procedure)" + } + ] + } + }, + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "user" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "309343006", + "display": "Physician" + } + ] + } + }, + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "venue" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "440655000", + "display": "Outpatient environment" + } + ] + } + } + ], + "jurisdiction": [ + { + "coding": [ + { + "system": "urn:iso:std:iso:3166", + "code": "US" + } + ] + } + ], + "topic": [ + { + "text": "Mental Health Treatment" + } + ], + "contributor": [ + { + "type": "author", + "name": "Motive Medical Intelligence", + "contact": [ + { + "telecom": [ + { + "system": "phone", + "value": "415-362-4007", + "use": "work" + }, + { + "system": "email", + "value": "info@motivemi.com", + "use": "work" + } + ] + } + ] + } + ], + "contact": [ + { + "telecom": [ + { + "system": "phone", + "value": "415-362-4007", + "use": "work" + }, + { + "system": "email", + "value": "info@motivemi.com", + "use": "work" + } + ] + } + ], + "copyright": "© Copyright 2016 Motive Medical Intelligence. All rights reserved.", + "relatedArtifact": [ + { + "type": "citation", + "display": "Practice Guideline for the Treatment of Patients with Major Depressive Disorder", + "url": "http://psychiatryonline.org/pb/assets/raw/sitewide/practice_guidelines/guidelines/mdd.pdf" + }, + { + "type": "composed-of", + "resource": { + "reference": "#citalopramMedication" + } + } + ], + "kind": "ReferralRequest", + "productReference": { + "reference": "#citalopramMedication" + }, + "dosage": [ + { + "text": "1 tablet oral 1 time daily", + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "code": "26643006", + "display": "Oral route (qualifier value)" + } + ], + "text": "Oral route (qualifier value)" + }, + "doseQuantity": { + "value": 1, + "unit": "{tbl}" + } + } + ], + "dynamicValue": [ + { + "description": "dispenseRequest.numberOfRepeatsAllowed is three (3)", + "path": "dispenseRequest.numberOfRepeatsAllowed", + "language": "text/cql", + "expression": "3" + }, + { + "description": "dispenseRequest.quantity is thirty (30) tablets", + "path": "dispenseRequest.quantity", + "language": "text/cql", + "expression": "30 '{tbl}'" + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/AdverseEvent.json b/data/SampleData/Stu3/AdverseEvent.json new file mode 100644 index 000000000..2674426c7 --- /dev/null +++ b/data/SampleData/Stu3/AdverseEvent.json @@ -0,0 +1,46 @@ +{ + "resourceType": "AdverseEvent", + "id": "example", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example

identifier: 49476534

category: AE

type: O/E - itchy rash (Details : {SNOMED CT code '304386008' = 'O/E - itchy rash', given as 'O/E - itchy rash'})

subject: Patient/example

date: 29/01/2017 12:34:56 PM

seriousness: Mild (Details : {http://hl7.org/fhir/adverse-event-seriousness code 'Mild' = 'Mild', given as 'Mild'})

recorder: Practitioner/example

description: This was a mild rash on the left forearm

SuspectEntities

-Instance
*Medication/example
" + }, + "identifier": { + "system": "http://acme.com/ids/patients/risks", + "value": "49476534" + }, + "category": "AE", + "type": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "304386008", + "display": "O/E - itchy rash" + } + ] + }, + "subject": { + "reference": "Patient/example" + }, + "date": "2017-01-29T12:34:56+00:00", + "seriousness": { + "coding": [ + { + "system": "http://hl7.org/fhir/adverse-event-seriousness", + "code": "Mild", + "display": "Mild" + } + ] + }, + "recorder": { + "reference": "Practitioner/example" + }, + "description": "This was a mild rash on the left forearm", + "suspectEntity": [ + { + "instance": { + "reference": "Medication/example" + } + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/AllergyIntolerance.json b/data/SampleData/Stu3/AllergyIntolerance.json new file mode 100644 index 000000000..334e1a218 --- /dev/null +++ b/data/SampleData/Stu3/AllergyIntolerance.json @@ -0,0 +1,103 @@ +{ + "resourceType": "AllergyIntolerance", + "id": "example", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example

identifier: 49476534

clinicalStatus: active

verificationStatus: confirmed

type: allergy

category: food

criticality: high

code: Cashew nuts (Details : {SNOMED CT code '227493005' = 'Cashew nuts', given as 'Cashew nuts'})

patient: Patient/example

onset: 01/01/2004

assertedDate: 09/10/2014 2:58:00 PM

recorder: Practitioner/example

asserter: Patient/example

lastOccurrence: 01/06/2012

note: The criticality is high becasue of the observed anaphylactic reaction when challenged with cashew extract.

reaction

substance: cashew nut allergenic extract Injectable Product (Details : {RxNorm code '1160593' = '1160593', given as 'cashew nut allergenic extract Injectable Product'})

manifestation: Anaphylactic reaction (Details : {SNOMED CT code '39579001' = 'Anaphylaxis', given as 'Anaphylactic reaction'})

description: Challenge Protocol. Severe reaction to subcutaneous cashew extract. Epinephrine administered

onset: 12/06/2012

severity: severe

exposureRoute: Subcutaneous route (Details : {SNOMED CT code '34206005' = 'Subcutaneous route', given as 'Subcutaneous route'})

reaction

manifestation: Urticaria (Details : {SNOMED CT code '64305001' = 'Urticaria', given as 'Urticaria'})

onset: 01/01/2004

severity: moderate

note: The patient reports that the onset of urticaria was within 15 minutes of eating cashews.

" + }, + "identifier": [ + { + "system": "http://acme.com/ids/patients/risks", + "value": "49476534" + } + ], + "clinicalStatus": "active", + "verificationStatus": "confirmed", + "type": "allergy", + "category": [ + "food" + ], + "criticality": "high", + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "227493005", + "display": "Cashew nuts" + } + ] + }, + "patient": { + "reference": "Patient/example" + }, + "onsetDateTime": "2004", + "assertedDate": "2014-10-09T14:58:00+11:00", + "recorder": { + "reference": "Practitioner/example" + }, + "asserter": { + "reference": "Patient/example" + }, + "lastOccurrence": "2012-06", + "note": [ + { + "text": "The criticality is high becasue of the observed anaphylactic reaction when challenged with cashew extract." + } + ], + "reaction": [ + { + "substance": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1160593", + "display": "cashew nut allergenic extract Injectable Product" + } + ] + }, + "manifestation": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39579001", + "display": "Anaphylactic reaction" + } + ] + } + ], + "description": "Challenge Protocol. Severe reaction to subcutaneous cashew extract. Epinephrine administered", + "onset": "2012-06-12", + "severity": "severe", + "exposureRoute": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + } + }, + { + "manifestation": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "64305001", + "display": "Urticaria" + } + ] + } + ], + "onset": "2004", + "severity": "moderate", + "note": [ + { + "text": "The patient reports that the onset of urticaria was within 15 minutes of eating cashews." + } + ] + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Appointment.json b/data/SampleData/Stu3/Appointment.json new file mode 100644 index 000000000..c8cf2047b --- /dev/null +++ b/data/SampleData/Stu3/Appointment.json @@ -0,0 +1,101 @@ +{ + "resourceType": "Appointment", + "id": "example", + "text": { + "status": "generated", + "div": "
Brian MRI results discussion
" + }, + "status": "booked", + "serviceCategory": { + "coding": [ + { + "system": "http://example.org/service-category", + "code": "gp", + "display": "General Practice" + } + ] + }, + "serviceType": [ + { + "coding": [ + { + "code": "52", + "display": "General Discussion" + } + ] + } + ], + "specialty": [ + { + "coding": [ + { + "system": "http://example.org/specialty", + "code": "gp", + "display": "General Practice" + } + ] + } + ], + "appointmentType": { + "coding": [ + { + "system": "http://example.org/appointment-type", + "code": "follow", + "display": "Followup" + } + ] + }, + "indication": [ + { + "reference": "Condition/example", + "display": "Severe burn of left ear" + } + ], + "priority": 5, + "description": "Discussion on the results of your recent MRI", + "start": "2013-12-10T09:00:00Z", + "end": "2013-12-10T11:00:00Z", + "created": "2013-10-10", + "comment": "Further expand on the results of the MRI and determine the next actions that may be appropriate.", + "incomingReferral": [ + { + "reference": "ReferralRequest/example" + } + ], + "participant": [ + { + "actor": { + "reference": "Patient/example", + "display": "Peter James Chalmers" + }, + "required": "required", + "status": "accepted" + }, + { + "type": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/ParticipationType", + "code": "ATND" + } + ] + } + ], + "actor": { + "reference": "Practitioner/example", + "display": "Dr Adam Careful" + }, + "required": "required", + "status": "accepted" + }, + { + "actor": { + "reference": "Location/1", + "display": "South Wing, second floor" + }, + "required": "required", + "status": "accepted" + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/AppointmentResponse.json b/data/SampleData/Stu3/AppointmentResponse.json new file mode 100644 index 000000000..9a2b87207 --- /dev/null +++ b/data/SampleData/Stu3/AppointmentResponse.json @@ -0,0 +1,36 @@ +{ + "resourceType": "AppointmentResponse", + "id": "exampleresp", + "text": { + "status": "generated", + "div": "
Accept Brian MRI results discussion
" + }, + "identifier": [ + { + "system": "http://example.org/sampleappointmentresponse-identifier", + "value": "response123" + } + ], + "appointment": { + "reference": "Appointment/examplereq", + "display": "Brian MRI results discussion" + }, + "start": "2013-12-25T13:15:00Z", + "end": "2013-12-25T13:30:00Z", + "participantType": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/ParticipationType", + "code": "ATND" + } + ] + } + ], + "actor": { + "reference": "Practitioner/example", + "display": "Dr Adam Careful" + }, + "participantStatus": "tentative", + "comment": "can't we try for this time, can't do mornings" +} \ No newline at end of file diff --git a/data/SampleData/Stu3/AuditEvent.json b/data/SampleData/Stu3/AuditEvent.json new file mode 100644 index 000000000..7c7845803 --- /dev/null +++ b/data/SampleData/Stu3/AuditEvent.json @@ -0,0 +1,96 @@ +{ + "resourceType": "AuditEvent", + "id": "example-pixQuery", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example-pixQuery

type: Query (Details: DICOM code 110112 = 'Query', stated as 'Query')

subtype: PIX Query (Details: urn:oid:1.3.6.1.4.1.19376.1.2 code ITI-9 = 'ITI-9', stated as 'PIX Query')

action: E

recorded: 26/08/2015 11:42:24 PM

outcome: 0

agent

role: Source Role ID (Details : {DICOM code '110153' = 'Source Role ID', given as 'Source Role ID'})

userId: 2.16.840.1.113883.4.2|2.16.840.1.113883.4.2

altId: 6580

requestor: false

Networks

-AddressType
*Workstation1.ehr.familyclinic.com1

agent

userId: 95

altId: 601847123

name: Grahame Grieve

requestor: true

Sources

-Identifier
*hl7connect.healthintersections.com.au

entity

identifier: e3cdfc81a0d24bd^^^&2.16.840.1.113883.4.2&ISO

type: Person (Details: http://hl7.org/fhir/object-type code 1 = '1', stated as 'Person')

role: Patient (Details: http://hl7.org/fhir/object-role code 1 = 'Patient', stated as 'Patient')

entity

type: System Object (Details: http://hl7.org/fhir/object-type code 2 = '2', stated as 'System Object')

role: Query (Details: http://hl7.org/fhir/object-role code 24 = 'Query', stated as 'Query')

query: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPFBSUEFfSU4yMDEzMDlVVjAyIElUU1ZlcnNpb249IlhNTF8xLjAiIHhtbG5zPSJ1cm46aGw3LW9yZzp2MyI+CiAgPGlkIGV4dGVuc2lvbj0iMzU0MjMiIHJvb3Q9IjEuMi44NDAuMTE0MzUwLjEuMTMuMC4xLjcuMS4xIi8+CiAgPGNyZWF0aW9uVGltZSB2YWx1ZT0iMjAxNDA1MDgxNjQ5MjUiLz4KICA8aW50ZXJhY3Rpb25JZCBleHRlbnNpb249IlBSUEFfSU4yMDEzMDVVVjAyIiByb290PSIyLjE2Ljg0MC4xLjExMzg4My4xLjYiLz4KICA8cHJvY2Vzc2luZ0NvZGUgY29kZT0iVCIvPgogIDxwcm9jZXNzaW5nTW9kZUNvZGUgY29kZT0iVCIvPgogIDxhY2NlcHRBY2tDb2RlIGNvZGU9IkFMIi8+CiAgPHJlY2VpdmVyIHR5cGVDb2RlPSJSQ1YiPgogICAgPGRldmljZSBjbGFzc0NvZGU9IkRFViIgZGV0ZXJtaW5lckNvZGU9IklOU1RBTkNFIj4KICAgICAgPGlkIHJvb3Q9IkVIUl9NSVNZUyIvPgogICAgICA8YXNBZ2VudCBjbGFzc0NvZGU9IkFHTlQiPgogICAgICAgIDxyZXByZXNlbnRlZE9yZ2FuaXphdGlvbiBjbGFzc0NvZGU9Ik9SRyIgZGV0ZXJtaW5lckNvZGU9IklOU1RBTkNFIj4KICAgICAgICAgIDxpZCByb290PSJNSVNZUyIvPgogICAgICAgIDwvcmVwcmVzZW50ZWRPcmdhbml6YXRpb24+CiAgICAgIDwvYXNBZ2VudD4KICAgIDwvZGV2aWNlPgogIDwvcmVjZWl2ZXI+CiAgPHNlbmRlciB0eXBlQ29kZT0iU05EIj4KICAgIDxkZXZpY2UgY2xhc3NDb2RlPSJERVYiIGRldGVybWluZXJDb2RlPSJJTlNUQU5DRSI+CiAgICAgIDxpZCByb290PSIyLjE2Ljg0MC4xLjExMzg4My40LjIiLz4KICAgICAgPGFzQWdlbnQgY2xhc3NDb2RlPSJBR05UIj4KICAgICAgICA8cmVwcmVzZW50ZWRPcmdhbml6YXRpb24gY2xhc3NDb2RlPSJPUkciIGRldGVybWluZXJDb2RlPSJJTlNUQU5DRSI+CiAgICAgICAgICA8aWQgcm9vdD0iMi4xNi44NDAuMS4xMTM4ODMuNC4yIi8+CiAgICAgICAgPC9yZXByZXNlbnRlZE9yZ2FuaXphdGlvbj4KICAgICAgPC9hc0FnZW50PgogICAgPC9kZXZpY2U+CiAgPC9zZW5kZXI+CiAgPGNvbnRyb2xBY3RQcm9jZXNzIGNsYXNzQ29kZT0iQ0FDVCIgbW9vZENvZGU9IkVWTiI+CiAgICA8Y29kZSBjb2RlPSJQUlBBX1RFMjAxMzA5VVYwMiIgY29kZVN5c3RlbT0iMi4xNi44NDAuMS4xMTM4ODMuMS42Ii8+CiAgICA8cXVlcnlCeVBhcmFtZXRlcj4KICAgICAgPHF1ZXJ5SWQgZXh0ZW5zaW9uPSIxODQwOTk3MDg0IiByb290PSIxLjIuODQwLjExNDM1MC4xLjEzLjI4LjEuMTguNS45OTkiLz4KICAgICAgPHN0YXR1c0NvZGUgY29kZT0ibmV3Ii8+CiAgICAgIDxyZXNwb25zZVByaW9yaXR5Q29kZSBjb2RlPSJJIi8+CiAgICAgIDxwYXJhbWV0ZXJMaXN0PgogICAgICAgIDxwYXRpZW50SWRlbnRpZmllcj4KICAgICAgICAgIDx2YWx1ZSBleHRlbnNpb249IlN1cnlhQnJhbmQiIHJvb3Q9IjIuMTYuODQwLjEuMTEzODgzLjQuMiIvPgogICAgICAgICAgPHNlbWFudGljc1RleHQ+UGF0aWVudC5JZDwvc2VtYW50aWNzVGV4dD4KICAgICAgICA8L3BhdGllbnRJZGVudGlmaWVyPgogICAgICA8L3BhcmFtZXRlckxpc3Q+CiAgICA8L3F1ZXJ5QnlQYXJhbWV0ZXI+CiAgPC9jb250cm9sQWN0UHJvY2Vzcz4KPC9QUlBBX0lOMjAxMzA5VVYwMj4K

Details

-TypeValue
*MSH-10MS4yLjg0MC4xMTQzNTAuMS4xMy4wLjEuNy4xLjE=
" + }, + "type": { + "system": "http://dicom.nema.org/resources/ontology/DCM", + "code": "110112", + "display": "Query" + }, + "subtype": [ + { + "system": "urn:oid:1.3.6.1.4.1.19376.1.2", + "code": "ITI-9", + "display": "PIX Query" + } + ], + "action": "E", + "recorded": "2015-08-26T23:42:24Z", + "outcome": "0", + "agent": [ + { + "role": [ + { + "coding": [ + { + "system": "http://dicom.nema.org/resources/ontology/DCM", + "code": "110153", + "display": "Source Role ID" + } + ] + } + ], + "userId": { + "value": "2.16.840.1.113883.4.2|2.16.840.1.113883.4.2" + }, + "altId": "6580", + "requestor": false, + "network": { + "address": "Workstation1.ehr.familyclinic.com", + "type": "1" + } + }, + { + "userId": { + "value": "95" + }, + "altId": "601847123", + "name": "Grahame Grieve", + "requestor": true + } + ], + "source": { + "identifier": { + "value": "hl7connect.healthintersections.com.au" + } + }, + "entity": [ + { + "identifier": { + "value": "e3cdfc81a0d24bd^^^&2.16.840.1.113883.4.2&ISO" + }, + "type": { + "system": "http://hl7.org/fhir/object-type", + "code": "1", + "display": "Person" + }, + "role": { + "system": "http://hl7.org/fhir/object-role", + "code": "1", + "display": "Patient" + } + }, + { + "type": { + "system": "http://hl7.org/fhir/object-type", + "code": "2", + "display": "System Object" + }, + "role": { + "system": "http://hl7.org/fhir/object-role", + "code": "24", + "display": "Query" + }, + "query": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPFBSUEFfSU4yMDEzMDlVVjAyIElUU1ZlcnNpb249IlhNTF8xLjAiIHhtbG5zPSJ1cm46aGw3LW9yZzp2MyI+CiAgPGlkIGV4dGVuc2lvbj0iMzU0MjMiIHJvb3Q9IjEuMi44NDAuMTE0MzUwLjEuMTMuMC4xLjcuMS4xIi8+CiAgPGNyZWF0aW9uVGltZSB2YWx1ZT0iMjAxNDA1MDgxNjQ5MjUiLz4KICA8aW50ZXJhY3Rpb25JZCBleHRlbnNpb249IlBSUEFfSU4yMDEzMDVVVjAyIiByb290PSIyLjE2Ljg0MC4xLjExMzg4My4xLjYiLz4KICA8cHJvY2Vzc2luZ0NvZGUgY29kZT0iVCIvPgogIDxwcm9jZXNzaW5nTW9kZUNvZGUgY29kZT0iVCIvPgogIDxhY2NlcHRBY2tDb2RlIGNvZGU9IkFMIi8+CiAgPHJlY2VpdmVyIHR5cGVDb2RlPSJSQ1YiPgogICAgPGRldmljZSBjbGFzc0NvZGU9IkRFViIgZGV0ZXJtaW5lckNvZGU9IklOU1RBTkNFIj4KICAgICAgPGlkIHJvb3Q9IkVIUl9NSVNZUyIvPgogICAgICA8YXNBZ2VudCBjbGFzc0NvZGU9IkFHTlQiPgogICAgICAgIDxyZXByZXNlbnRlZE9yZ2FuaXphdGlvbiBjbGFzc0NvZGU9Ik9SRyIgZGV0ZXJtaW5lckNvZGU9IklOU1RBTkNFIj4KICAgICAgICAgIDxpZCByb290PSJNSVNZUyIvPgogICAgICAgIDwvcmVwcmVzZW50ZWRPcmdhbml6YXRpb24+CiAgICAgIDwvYXNBZ2VudD4KICAgIDwvZGV2aWNlPgogIDwvcmVjZWl2ZXI+CiAgPHNlbmRlciB0eXBlQ29kZT0iU05EIj4KICAgIDxkZXZpY2UgY2xhc3NDb2RlPSJERVYiIGRldGVybWluZXJDb2RlPSJJTlNUQU5DRSI+CiAgICAgIDxpZCByb290PSIyLjE2Ljg0MC4xLjExMzg4My40LjIiLz4KICAgICAgPGFzQWdlbnQgY2xhc3NDb2RlPSJBR05UIj4KICAgICAgICA8cmVwcmVzZW50ZWRPcmdhbml6YXRpb24gY2xhc3NDb2RlPSJPUkciIGRldGVybWluZXJDb2RlPSJJTlNUQU5DRSI+CiAgICAgICAgICA8aWQgcm9vdD0iMi4xNi44NDAuMS4xMTM4ODMuNC4yIi8+CiAgICAgICAgPC9yZXByZXNlbnRlZE9yZ2FuaXphdGlvbj4KICAgICAgPC9hc0FnZW50PgogICAgPC9kZXZpY2U+CiAgPC9zZW5kZXI+CiAgPGNvbnRyb2xBY3RQcm9jZXNzIGNsYXNzQ29kZT0iQ0FDVCIgbW9vZENvZGU9IkVWTiI+CiAgICA8Y29kZSBjb2RlPSJQUlBBX1RFMjAxMzA5VVYwMiIgY29kZVN5c3RlbT0iMi4xNi44NDAuMS4xMTM4ODMuMS42Ii8+CiAgICA8cXVlcnlCeVBhcmFtZXRlcj4KICAgICAgPHF1ZXJ5SWQgZXh0ZW5zaW9uPSIxODQwOTk3MDg0IiByb290PSIxLjIuODQwLjExNDM1MC4xLjEzLjI4LjEuMTguNS45OTkiLz4KICAgICAgPHN0YXR1c0NvZGUgY29kZT0ibmV3Ii8+CiAgICAgIDxyZXNwb25zZVByaW9yaXR5Q29kZSBjb2RlPSJJIi8+CiAgICAgIDxwYXJhbWV0ZXJMaXN0PgogICAgICAgIDxwYXRpZW50SWRlbnRpZmllcj4KICAgICAgICAgIDx2YWx1ZSBleHRlbnNpb249IlN1cnlhQnJhbmQiIHJvb3Q9IjIuMTYuODQwLjEuMTEzODgzLjQuMiIvPgogICAgICAgICAgPHNlbWFudGljc1RleHQ+UGF0aWVudC5JZDwvc2VtYW50aWNzVGV4dD4KICAgICAgICA8L3BhdGllbnRJZGVudGlmaWVyPgogICAgICA8L3BhcmFtZXRlckxpc3Q+CiAgICA8L3F1ZXJ5QnlQYXJhbWV0ZXI+CiAgPC9jb250cm9sQWN0UHJvY2Vzcz4KPC9QUlBBX0lOMjAxMzA5VVYwMj4K", + "detail": [ + { + "type": "MSH-10", + "value": "MS4yLjg0MC4xMTQzNTAuMS4xMy4wLjEuNy4xLjE=" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Binary.json b/data/SampleData/Stu3/Binary.json new file mode 100644 index 000000000..f3ba31a1f --- /dev/null +++ b/data/SampleData/Stu3/Binary.json @@ -0,0 +1,6 @@ +{ + "resourceType": "Binary", + "id": "f006", + "contentType": "image/jpeg", + "content": "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" +} \ No newline at end of file diff --git a/data/SampleData/Stu3/BodySite.json b/data/SampleData/Stu3/BodySite.json new file mode 100644 index 000000000..cb8cc34a1 --- /dev/null +++ b/data/SampleData/Stu3/BodySite.json @@ -0,0 +1,46 @@ +{ + "resourceType": "BodySite", + "id": "tumor", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: tumor

identifier: 12345

code: Splenic mass (Details : {SNOMED CT code '4147007' = 'Mass', given as 'Mass (morphologic abnormality)'})

qualifier: Splenic mass (Details : {SNOMED CT code '78961009' = 'Spleen', given as 'Splenic structure (body structure)'})

description: 7 cm maximum diameter

image:

patient: Patient/example

" + }, + "identifier": [ + { + "system": "http://goodhealth.org/bodysite/identifiers", + "value": "12345" + } + ], + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "4147007", + "display": "Mass (morphologic abnormality)" + } + ], + "text": "Splenic mass" + }, + "qualifier": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "78961009", + "display": "Splenic structure (body structure)" + } + ], + "text": "Splenic mass" + } + ], + "description": "7 cm maximum diameter", + "image": [ + { + "contentType": "application/dicom", + "url": "http://imaging.acme.com/wado/server?requestType=WADO&wado_details" + } + ], + "patient": { + "reference": "Patient/example" + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/CapabilityStatement.json b/data/SampleData/Stu3/CapabilityStatement.json new file mode 100644 index 000000000..787c70c14 --- /dev/null +++ b/data/SampleData/Stu3/CapabilityStatement.json @@ -0,0 +1,223 @@ +{ + "resourceType": "CapabilityStatement", + "id": "example", + "text": { + "status": "generated", + "div": "
\n\t\t\t

The EHR Server supports the following transactions for the resource Person: read, vread, \n update, history, search(name,gender), create and updates.

\n\t\t\t

The EHR System supports the following message: admin-notify::Person.

\n\t\t\t

The EHR Application has a \n general document profile.\n

\n\t\t
" + }, + "url": "urn:uuid:68D043B5-9ECF-4559-A57A-396E0D452311", + "version": "20130510", + "name": "ACME-EHR", + "title": "ACME EHR capability statement", + "status": "draft", + "experimental": true, + "date": "2012-01-04", + "publisher": "ACME Corporation", + "contact": [ + { + "name": "System Administrator", + "telecom": [ + { + "system": "email", + "value": "wile@acme.org" + } + ] + } + ], + "description": "This is the FHIR capability statement for the main EHR at ACME for the private interface - it does not describe the public interface", + "useContext": [ + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "focus" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/variant-state", + "code": "positive" + } + ] + } + } + ], + "jurisdiction": [ + { + "coding": [ + { + "system": "urn:iso:std:iso:3166", + "code": "US", + "display": "United States of America (the)" + } + ] + } + ], + "purpose": "Main EHR capability statement, published for contracting and operational support", + "copyright": "Copyright © Acme Healthcare and GoodCorp EHR Systems", + "kind": "instance", + "instantiates": [ + "http://ihe.org/fhir/CapabilityStatement/pixm-client" + ], + "software": { + "name": "EHR", + "version": "0.00.020.2134", + "releaseDate": "2012-01-04" + }, + "implementation": { + "description": "main EHR at ACME", + "url": "http://10.2.3.4/fhir" + }, + "fhirVersion": "1.0.0", + "acceptUnknown": "both", + "format": [ + "xml", + "json" + ], + "patchFormat": [ + "application/xml-patch+xml", + "application/json-patch+json" + ], + "implementationGuide": [ + "http://hl7.org/fhir/us/lab" + ], + "profile": [ + { + "reference": "http://hl7.org/fhir/us/core/StructureDefinition/familymemberhistory-genetic" + } + ], + "rest": [ + { + "mode": "server", + "documentation": "Main FHIR endpoint for acem health", + "security": { + "cors": true, + "service": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/restful-security-service", + "code": "SMART-on-FHIR" + } + ] + } + ], + "description": "See Smart on FHIR documentation", + "certificate": [ + { + "type": "application/jwt", + "blob": "IHRoaXMgYmxvYiBpcyBub3QgdmFsaWQ=" + } + ] + }, + "resource": [ + { + "type": "Patient", + "profile": { + "reference": "http://fhir.hl7.org/base/StructureDefinition/7896271d-57f6-4231-89dc-dcc91eab2416" + }, + "documentation": "This server does not let the clients create identities.", + "interaction": [ + { + "code": "read" + }, + { + "code": "vread", + "documentation": "Only supported for patient records since 12-Dec 2012" + }, + { + "code": "update" + }, + { + "code": "history-instance" + }, + { + "code": "create" + }, + { + "code": "history-type" + } + ], + "versioning": "versioned-update", + "readHistory": true, + "updateCreate": false, + "conditionalCreate": true, + "conditionalRead": "full-support", + "conditionalUpdate": false, + "conditionalDelete": "not-supported", + "searchInclude": [ + "Organization" + ], + "searchRevInclude": [ + "Person" + ], + "searchParam": [ + { + "name": "identifier", + "definition": "http://hl7.org/fhir/SearchParameter/Patient-identifier", + "type": "token", + "documentation": "Only supports search by institution MRN" + }, + { + "name": "general-practitioner", + "definition": "http://hl7.org/fhir/SearchParameter/Patient-general-practitioner", + "type": "reference" + } + ] + } + ], + "interaction": [ + { + "code": "transaction" + }, + { + "code": "history-system" + } + ], + "compartment": [ + "http://hl7.org/fhir/CompartmentDefinition/patient" + ] + } + ], + "messaging": [ + { + "endpoint": [ + { + "protocol": { + "system": "http://hl7.org/fhir/message-transport", + "code": "mllp" + }, + "address": "mllp:10.1.1.10:9234" + } + ], + "reliableCache": 30, + "documentation": "ADT A08 equivalent for external system notifications", + "event": [ + { + "code": { + "system": "http://hl7.org/fhir/message-events", + "code": "admin-notify" + }, + "category": "Consequence", + "mode": "receiver", + "focus": "Patient", + "request": { + "reference": "StructureDefinition/Patient" + }, + "response": { + "reference": "StructureDefinition/MessageHeader" + }, + "documentation": "Notification of an update to a patient resource. changing the links is not supported" + } + ] + } + ], + "document": [ + { + "mode": "consumer", + "documentation": "Basic rules for all documents in the EHR system", + "profile": { + "reference": "http://fhir.hl7.org/base/Profilebc054d23-75e1-4dc6-aca5-838b6b1ac81d/_history/b5fdd9fc-b021-4ea1-911a-721a60663796" + } + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/CarePlan.json b/data/SampleData/Stu3/CarePlan.json new file mode 100644 index 000000000..83fe66bf1 --- /dev/null +++ b/data/SampleData/Stu3/CarePlan.json @@ -0,0 +1,137 @@ +{ + "resourceType": "CarePlan", + "id": "example", + "text": { + "status": "additional", + "div": "
\n

A simple care plan to indicate a patient taking their weight once a day because of obesity.

\n
" + }, + "identifier": [ + { + "value": "12345" + } + ], + "definition": [ + { + "display": "A PlanDefinition protocol for obesity" + } + ], + "basedOn": [ + { + "display": "Management of Type 2 Diabetes" + } + ], + "replaces": [ + { + "display": "Plan from urgent care clinic" + } + ], + "partOf": [ + { + "display": "Overall wellness plan" + } + ], + "status": "active", + "intent": "plan", + "category": [ + { + "text": "Weight management plan" + } + ], + "description": "Manage obesity and weight loss", + "subject": { + "reference": "Patient/example", + "display": "Peter James Chalmers" + }, + "context": { + "reference": "Encounter/home" + }, + "period": { + "end": "2017-06-01" + }, + "author": [ + { + "reference": "Practitioner/example", + "display": "Dr Adam Careful" + } + ], + "careTeam": [ + { + "reference": "CareTeam/example" + } + ], + "addresses": [ + { + "reference": "#p1", + "display": "obesity" + } + ], + "goal": [ + { + "reference": "Goal/example" + } + ], + "activity": [ + { + "outcomeCodeableConcept": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "161832001", + "display": "Progressive weight loss" + } + ] + } + ], + "outcomeReference": [ + { + "reference": "Observation/example", + "display": "Weight Measured" + } + ], + "detail": { + "category": { + "coding": [ + { + "system": "http://hl7.org/fhir/care-plan-activity-category", + "code": "observation" + } + ] + }, + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "3141-9", + "display": "Weight Measured" + }, + { + "system": "http://snomed.info/sct", + "code": "27113001", + "display": "Body weight" + } + ] + }, + "status": "completed", + "statusReason": "Achieved weight loss to mitigate diabetes risk.", + "prohibited": false, + "scheduledTiming": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "location": { + "display": "Patient's home" + }, + "performer": [ + { + "reference": "Patient/example", + "display": "Peter James Chalmers" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/CareTeam.json b/data/SampleData/Stu3/CareTeam.json new file mode 100644 index 000000000..b78cb123e --- /dev/null +++ b/data/SampleData/Stu3/CareTeam.json @@ -0,0 +1,80 @@ +{ + "resourceType": "CareTeam", + "id": "example", + "text": { + "status": "generated", + "div": "
Care Team
" + }, + "contained": [ + { + "resourceType": "Practitioner", + "id": "pr1", + "name": [ + { + "family": "Dietician", + "given": [ + "Dorothy" + ] + } + ] + } + ], + "identifier": [ + { + "value": "12345" + } + ], + "status": "active", + "category": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/care-team-category", + "code": "encounter" + } + ] + } + ], + "name": "Peter James Charlmers Care Plan for Inpatient Encounter", + "subject": { + "reference": "Patient/example", + "display": "Peter James Chalmers" + }, + "context": { + "reference": "Encounter/example" + }, + "period": { + "end": "2013-01-01" + }, + "participant": [ + { + "role": { + "text": "responsiblePerson" + }, + "member": { + "reference": "Patient/example", + "display": "Peter James Chalmers" + } + }, + { + "role": { + "text": "adviser" + }, + "member": { + "reference": "#pr1", + "display": "Dorothy Dietition" + }, + "onBehalfOf": { + "reference": "Organization/f001" + }, + "period": { + "end": "2013-01-01" + } + } + ], + "managingOrganization": [ + { + "reference": "Organization/f001" + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/ChargeItem.json b/data/SampleData/Stu3/ChargeItem.json new file mode 100644 index 000000000..05c22ab37 --- /dev/null +++ b/data/SampleData/Stu3/ChargeItem.json @@ -0,0 +1,121 @@ +{ + "resourceType": "ChargeItem", + "id": "example", + "text": { + "status": "generated", + "div": "
Example of ChargeItem Usage in Context of the German EBM Billing code system
" + }, + "identifier": { + "system": "http://myHospital.org/ChargeItems", + "value": "654321" + }, + "definition": [ + "http://www.kbv.de/tools/ebm/html/01520_2904360860826220813632.html" + ], + "status": "billable", + "code": { + "coding": [ + { + "code": "01510", + "display": "Zusatzpauschale für Beobachtung nach diagnostischer Koronarangiografie" + } + ] + }, + "subject": { + "reference": "Patient/example" + }, + "context": { + "reference": "Encounter/example" + }, + "occurrencePeriod": { + "start": "2017-01-25T08:00:00+01:00", + "end": "2017-01-25T12:35:00+01:00" + }, + "participant": [ + { + "role": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "17561000", + "display": "Cardiologist" + } + ] + }, + "actor": { + "reference": "Practitioner/example" + } + }, + { + "role": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "224542009", + "display": "Coronary Care Nurse" + } + ] + }, + "actor": { + "reference": "Practitioner/example" + } + } + ], + "performingOrganization": { + "identifier": { + "system": "http://myhospital/NamingSystem/departments", + "value": "CARD_INTERMEDIATE_CARE" + } + }, + "requestingOrganization": { + "identifier": { + "system": "http://myhospital/NamingSystem/departments", + "value": "CARD_U1" + } + }, + "quantity": { + "value": 1 + }, + "factorOverride": 0.8, + "priceOverride": { + "value": 40, + "unit": "EUR", + "system": "urn:iso:std:iso:4217", + "code": "EUR" + }, + "overrideReason": "Patient is Cardiologist's golf buddy, so he gets a 20% discount!", + "enterer": { + "reference": "Practitioner/example" + }, + "enteredDate": "2017-01-25T23:55:04+01:00", + "reason": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/sid/icd-10", + "code": "123456", + "display": "DIAG-1" + } + ] + } + ], + "service": [ + { + "reference": "Procedure/example" + } + ], + "account": [ + { + "reference": "Account/example" + } + ], + "note": [ + { + "authorReference": { + "reference": "Practitioner/example" + }, + "time": "2017-01-25T23:55:04+01:00", + "text": "The code is only applicable for periods longer than 4h" + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Claim.json b/data/SampleData/Stu3/Claim.json new file mode 100644 index 000000000..491150a7d --- /dev/null +++ b/data/SampleData/Stu3/Claim.json @@ -0,0 +1,277 @@ +{ + "resourceType": "Claim", + "id": "100151", + "text": { + "status": "generated", + "div": "
A human-readable rendering of the Oral Health Claim
" + }, + "identifier": [ + { + "system": "http://happyvalley.com/claim", + "value": "12346" + } + ], + "status": "active", + "type": { + "coding": [ + { + "system": "http://hl7.org/fhir/ex-claimtype", + "code": "oral" + } + ] + }, + "use": "complete", + "patient": { + "reference": "Patient/1" + }, + "created": "2014-08-16", + "insurer": { + "reference": "Organization/2" + }, + "organization": { + "reference": "Organization/1" + }, + "priority": { + "coding": [ + { + "code": "normal" + } + ] + }, + "payee": { + "type": { + "coding": [ + { + "code": "provider" + } + ] + } + }, + "careTeam": [ + { + "sequence": 1, + "provider": { + "reference": "Practitioner/example" + } + } + ], + "information": [ + { + "sequence": 1, + "category": { + "coding": [ + { + "system": "http://hl7.org/fhir/claiminformationcategory", + "code": "missingtooth" + } + ] + }, + "code": { + "coding": [ + { + "system": "http://hl7.org/fhir/ex-tooth", + "code": "15" + } + ] + }, + "timingDate": "2012-04-07", + "reason": { + "coding": [ + { + "system": "http://hl7.org/fhir/missingtoothreason", + "code": "e" + } + ] + } + }, + { + "sequence": 2, + "category": { + "coding": [ + { + "system": "http://hl7.org/fhir/claiminformationcategory", + "code": "exception" + } + ] + }, + "code": { + "coding": [ + { + "system": "http://hl7.org/fhir/claim-exception", + "code": "student" + } + ] + }, + "valueString": "Happy Valley Community College" + } + ], + "diagnosis": [ + { + "sequence": 1, + "diagnosisCodeableConcept": { + "coding": [ + { + "code": "123456" + } + ] + } + } + ], + "insurance": [ + { + "sequence": 1, + "focal": true, + "coverage": { + "reference": "Coverage/9876B1" + } + } + ], + "item": [ + { + "sequence": 1, + "careTeamLinkId": [ + 1 + ], + "service": { + "coding": [ + { + "system": "http://example.org/fhir/oralservicecodes", + "code": "1200" + } + ] + }, + "servicedDate": "2014-08-16", + "unitPrice": { + "value": 135.57, + "system": "urn:iso:std:iso:4217", + "code": "USD" + }, + "net": { + "value": 135.57, + "system": "urn:iso:std:iso:4217", + "code": "USD" + } + }, + { + "sequence": 2, + "careTeamLinkId": [ + 1 + ], + "service": { + "coding": [ + { + "system": "http://example.org/fhir/oralservicecodes", + "code": "21211" + } + ] + }, + "servicedDate": "2014-08-16", + "unitPrice": { + "value": 105.00, + "system": "urn:iso:std:iso:4217", + "code": "USD" + }, + "net": { + "value": 105.00, + "system": "urn:iso:std:iso:4217", + "code": "USD" + }, + "bodySite": { + "coding": [ + { + "system": "http://fdi.org/fhir/oraltoothcodes", + "code": "21" + } + ] + }, + "subSite": [ + { + "coding": [ + { + "system": "http://fdi.org/fhir/oralsurfacecodes", + "code": "L" + } + ] + } + ] + }, + { + "sequence": 3, + "careTeamLinkId": [ + 1 + ], + "service": { + "coding": [ + { + "system": "http://example.org/fhir/oralservicecodes", + "code": "27211" + } + ] + }, + "servicedDate": "2014-08-16", + "unitPrice": { + "value": 1100.00, + "system": "urn:iso:std:iso:4217", + "code": "USD" + }, + "net": { + "value": 1100.00, + "system": "urn:iso:std:iso:4217", + "code": "USD" + }, + "bodySite": { + "coding": [ + { + "system": "http://fdi.org/fhir/oraltoothcodes", + "code": "36" + } + ] + }, + "detail": [ + { + "sequence": 1, + "service": { + "coding": [ + { + "system": "http://example.org/fhir/oralservicecodes", + "code": "27211" + } + ] + }, + "unitPrice": { + "value": 1000.00, + "system": "urn:iso:std:iso:4217", + "code": "USD" + }, + "factor": 0.75, + "net": { + "value": 750.00, + "system": "urn:iso:std:iso:4217", + "code": "USD" + } + }, + { + "sequence": 2, + "service": { + "coding": [ + { + "system": "http://example.org/fhir/oralservicecodes", + "code": "lab" + } + ] + }, + "unitPrice": { + "value": 350.00, + "system": "urn:iso:std:iso:4217", + "code": "USD" + }, + "net": { + "value": 350.00, + "system": "urn:iso:std:iso:4217", + "code": "USD" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/ClaimResponse.json b/data/SampleData/Stu3/ClaimResponse.json new file mode 100644 index 000000000..8b87b929e --- /dev/null +++ b/data/SampleData/Stu3/ClaimResponse.json @@ -0,0 +1,140 @@ +{ + "resourceType": "ClaimResponse", + "id": "R3500", + "text": { + "status": "generated", + "div": "
A human-readable rendering of the ClaimResponse
" + }, + "identifier": [ + { + "system": "http://www.BenefitsInc.com/fhir/remittance", + "value": "R3500" + } + ], + "status": "active", + "patient": { + "reference": "Patient/1" + }, + "created": "2014-08-16", + "insurer": { + "identifier": { + "system": "http://www.jurisdiction.org/insurers", + "value": "555123" + } + }, + "requestProvider": { + "reference": "Practitioner/1" + }, + "requestOrganization": { + "reference": "Organization/1" + }, + "request": { + "reference": "http://www.BenefitsInc.com/fhir/oralhealthclaim/15476332402" + }, + "outcome": { + "coding": [ + { + "system": "http://hl7.org/fhir/remittance-outcome", + "code": "complete" + } + ] + }, + "disposition": "Claim settled as per contract.", + "payeeType": { + "coding": [ + { + "system": "http://hl7.org/fhir/payeetype", + "code": "provider" + } + ] + }, + "item": [ + { + "sequenceLinkId": 1, + "adjudication": [ + { + "category": { + "coding": [ + { + "code": "eligible" + } + ] + }, + "amount": { + "value": 135.57, + "system": "urn:iso:std:iso:4217", + "code": "USD" + } + }, + { + "category": { + "coding": [ + { + "code": "copay" + } + ] + }, + "amount": { + "value": 10.00, + "system": "urn:iso:std:iso:4217", + "code": "USD" + } + }, + { + "category": { + "coding": [ + { + "code": "eligpercent" + } + ] + }, + "value": 80.00 + }, + { + "category": { + "coding": [ + { + "code": "benefit" + } + ] + }, + "amount": { + "value": 100.47, + "system": "urn:iso:std:iso:4217", + "code": "USD" + } + } + ] + } + ], + "totalCost": { + "value": 135.57, + "system": "urn:iso:std:iso:4217", + "code": "USD" + }, + "totalBenefit": { + "value": 100.47, + "system": "urn:iso:std:iso:4217", + "code": "USD" + }, + "payment": { + "type": { + "coding": [ + { + "system": "http://hl7.org/fhir/ex-paymenttype", + "code": "complete" + } + ] + }, + "date": "2014-08-31", + "amount": { + "value": 100.47, + "system": "urn:iso:std:iso:4217", + "code": "USD" + }, + "identifier": { + "system": "http://www.BenefitsInc.com/fhir/paymentidentifier", + "value": "201408-2-1569478" + } + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/ClinicalImpression.json b/data/SampleData/Stu3/ClinicalImpression.json new file mode 100644 index 000000000..a89bbcda4 --- /dev/null +++ b/data/SampleData/Stu3/ClinicalImpression.json @@ -0,0 +1,71 @@ +{ + "resourceType": "ClinicalImpression", + "id": "example", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example

identifier: 12345

status: completed

description: This 26 yo male patient is brought into ER by ambulance after being involved in a motor vehicle accident

subject: Patient/example

context: Encounter/example

effective: 06/12/2014 8:00:00 PM --> 06/12/2014 10:33:00 PM

date: 06/12/2014 10:33:00 PM

assessor: Practitioner/example

problem: MVA

Investigations

-CodeItem
*Initial Examination (Details )deep laceration of the scalp (left temporo-occipital)

summary: provisional diagnoses of laceration of head and traumatic brain injury (TBI)

Findings

-Item[x]
*850.0 (Details : {ICD-9 code '850.0' = '850.0)
" + }, + "identifier": [ + { + "value": "12345" + } + ], + "status": "draft", + "description": "This 26 yo male patient is brought into ER by ambulance after being involved in a motor vehicle accident", + "subject": { + "reference": "Patient/example" + }, + "context": { + "reference": "Encounter/example" + }, + "effectivePeriod": { + "start": "2014-12-06T20:00:00+11:00", + "end": "2014-12-06T22:33:00+11:00" + }, + "date": "2014-12-06T22:33:00+11:00", + "assessor": { + "reference": "Practitioner/example" + }, + "problem": [ + { + "display": "MVA" + } + ], + "action":{ + "reference": "action" + }, + "investigation": [ + { + "code": { + "text": "Initial Examination" + }, + "item": [ + { + "display": "deep laceration of the scalp (left temporo-occipital)" + }, + { + "display": "decreased level of consciousness" + }, + { + "display": "disoriented to time and place" + }, + { + "display": "restless" + } + ] + } + ], + "summary": "provisional diagnoses of laceration of head and traumatic brain injury (TBI)", + "finding": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/sid/icd-9", + "code": "850.0" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/CodeSystem.json b/data/SampleData/Stu3/CodeSystem.json new file mode 100644 index 000000000..2d542884c --- /dev/null +++ b/data/SampleData/Stu3/CodeSystem.json @@ -0,0 +1,82 @@ +{ + "resourceType": "CodeSystem", + "id": "example", + "meta": { + "profile": [ + "http://hl7.org/fhir/StructureDefinition/shareablecodesystem" + ] + }, + "text": { + "status": "generated", + "div": "
\n

CodeSystem "ACME Codes for Cholesterol": This is an example code system that includes \n all the codes for serum cholesterol defined by ACME inc.

\n

Developed by: FHIR project team (example)

\n

Published for testing on 28-Jan 2016

\n

This code system defines all the ACME codes for serum cholesterol:

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Code\n \n Display\n \n Definition\n
chol-mmolSChol (mmol/L)Serum Cholesterol, in mmol/L
chol-massSChol (mg/L)Serum Cholesterol, in mg/L
cholSCholSerum Cholesterol
\n
" + }, + "url": "http://hl7.org/fhir/CodeSystem/example", + "identifier": { + "system": "http://acme.com/identifiers/codesystems", + "value": "internal-cholesterol-inl" + }, + "version": "20160128", + "name": "ACME Codes for Cholesterol in Serum/Plasma", + "status": "draft", + "experimental": true, + "date": "2016-01-28", + "publisher": "HL7 International", + "contact": [ + { + "name": "FHIR project team", + "telecom": [ + { + "system": "url", + "value": "http://hl7.org/fhir" + } + ] + } + ], + "description": "This is an example code system that includes all the ACME codes for serum/plasma cholesterol from v2.36.", + "caseSensitive": true, + "content": "complete", + "concept": [ + { + "code": "chol-mmol", + "display": "SChol (mmol/L)", + "definition": "Serum Cholesterol, in mmol/L", + "designation": [ + { + "use": { + "system": "http://acme.com/config/fhir/codesystems/internal", + "code": "internal-label" + }, + "value": "From ACME POC Testing" + } + ] + }, + { + "code": "chol-mass", + "display": "SChol (mg/L)", + "definition": "Serum Cholesterol, in mg/L", + "designation": [ + { + "use": { + "system": "http://acme.com/config/fhir/codesystems/internal", + "code": "internal-label" + }, + "value": "From Paragon Labs" + } + ] + }, + { + "code": "chol", + "display": "SChol", + "definition": "Serum Cholesterol", + "designation": [ + { + "use": { + "system": "http://acme.com/config/fhir/codesystems/internal", + "code": "internal-label" + }, + "value": "Obdurate Labs uses this with both kinds of units..." + } + ] + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Communication.json b/data/SampleData/Stu3/Communication.json new file mode 100644 index 000000000..7ccb0e5f8 --- /dev/null +++ b/data/SampleData/Stu3/Communication.json @@ -0,0 +1,76 @@ +{ + "resourceType": "Communication", + "id": "fm-attachment", + "text": { + "status": "generated", + "div": "
Attachment which is unsolicited
" + }, + "identifier": [ + { + "system": "http://www.providerco.com/communication", + "value": "12345" + } + ], + "status": "completed", + "category": [ + { + "coding": [ + { + "system": "http://acme.org/messagetypes", + "code": "SolicitedAttachment" + } + ] + } + ], + "subject": { + "reference": "Patient/1" + }, + "recipient": [ + { + "identifier": { + "system": "http://www.jurisdiction.com/insurer", + "value": "123456" + } + } + ], + "topic": [ + { + "identifier": { + "system": "http://happyvalley.com/claim", + "value": "12345" + } + }, + { + "identifier": { + "system": "http://www.BenefitsInc.com/fhir/claimresponse", + "value": "R3500" + } + } + ], + "sent": "2016-06-12T18:01:10-08:00", + "sender": { + "identifier": { + "system": "http://www.jurisdiction.com/provideroffices", + "value": "3456" + } + }, + "payload": [ + { + "contentAttachment": { + "contentType": "application/pdf", + "data": "SGVsbG8=", + "title": "accident notes 20100201.pdf", + "creation": "2010-02-01T11:50:23-05:00" + } + }, + { + "contentAttachment": { + "contentType": "application/pdf", + "url": "http://happyvalley.com/docs/AB12345", + "size": 104274, + "hash": "SGVsbG8gdGhlcmU=", + "creation": "2010-02-01T10:57:34+01:00" + } + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/CommunicationRequest.json b/data/SampleData/Stu3/CommunicationRequest.json new file mode 100644 index 000000000..5ee1f9f7d --- /dev/null +++ b/data/SampleData/Stu3/CommunicationRequest.json @@ -0,0 +1,74 @@ +{ + "resourceType": "CommunicationRequest", + "id": "fm-solicit", + "text": { + "status": "generated", + "div": "
Request for Accident Report
" + }, + "identifier": [ + { + "system": "http://www.jurisdiction.com/insurer/123456", + "value": "ABC123" + } + ], + "basedOn": [ + { + "display": "EligibilityRequest" + } + ], + "replaces": [ + { + "display": "prior CommunicationRequest" + } + ], + "groupIdentifier": { + "value": "12345" + }, + "status": "active", + "category": [ + { + "coding": [ + { + "system": "http://acme.org/messagetypes", + "code": "SolicitedAttachmentRequest" + } + ] + } + ], + "priority": "routine", + "medium": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/ParticipationMode", + "code": "WRITTEN", + "display": "written" + } + ], + "text": "written" + } + ], + "recipient": [ + { + "reference": "#provider" + } + ], + "context": { + "reference": "Encounter/example" + }, + "payload": [ + { + "contentString": "Please provide the accident report and any associated pictures to support your Claim# DEF5647." + } + ], + "occurrenceDateTime": "2016-06-10T11:01:10-08:00", + "authoredOn": "2016-06-10T11:01:10-08:00", + "sender": { + "reference": "#payor" + }, + "requester": { + "agent": { + "reference": "#requester" + } + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/CompartmentDefinition.json b/data/SampleData/Stu3/CompartmentDefinition.json new file mode 100644 index 000000000..45f1e28a5 --- /dev/null +++ b/data/SampleData/Stu3/CompartmentDefinition.json @@ -0,0 +1,608 @@ +{ + "resourceType": "CompartmentDefinition", + "id": "patient", + "text": { + "status": "generated", + "div": "
!-- Snipped for Brevity -->
" + }, + "url": "http://hl7.org/fhir/CompartmentDefinition/patient", + "name": "Base FHIR compartment definition for Patient", + "status": "draft", + "experimental": true, + "date": "2019-10-24T11:53:00+11:00", + "publisher": "FHIR Project Team", + "contact": [ + { + "telecom": [ + { + "system": "url", + "value": "http://hl7.org/fhir" + } + ] + } + ], + "description": "There is an instance of the patient compartment for each patient resource, and the identity of the compartment is the same as the patient. When a patient is linked to another patient, all the records associated with the linked patient are in the compartment associated with the target of the link.. The set of resources associated with a particular patient", + "code": "Patient", + "search": true, + "resource": [ + { + "code": "Account", + "param": [ + "subject" + ] + }, + { + "code": "ActivityDefinition" + }, + { + "code": "AdverseEvent", + "param": [ + "subject" + ] + }, + { + "code": "AllergyIntolerance", + "param": [ + "patient", + "recorder", + "asserter" + ] + }, + { + "code": "Appointment", + "param": [ + "actor" + ] + }, + { + "code": "AppointmentResponse", + "param": [ + "actor" + ] + }, + { + "code": "AuditEvent", + "param": [ + "patient", + "agent.patient", + "entity.patient" + ] + }, + { + "code": "Basic", + "param": [ + "patient", + "author" + ] + }, + { + "code": "Binary" + }, + { + "code": "BodySite", + "param": [ + "patient" + ] + }, + { + "code": "Bundle" + }, + { + "code": "CapabilityStatement" + }, + { + "code": "CarePlan", + "param": [ + "patient", + "performer" + ] + }, + { + "code": "CareTeam", + "param": [ + "patient", + "participant" + ] + }, + { + "code": "ChargeItem", + "param": [ + "subject" + ] + }, + { + "code": "Claim", + "param": [ + "patient", + "payee" + ] + }, + { + "code": "ClaimResponse", + "param": [ + "patient" + ] + }, + { + "code": "ClinicalImpression", + "param": [ + "subject" + ] + }, + { + "code": "CodeSystem" + }, + { + "code": "Communication", + "param": [ + "subject", + "sender", + "recipient" + ] + }, + { + "code": "CommunicationRequest", + "param": [ + "subject", + "sender", + "recipient", + "requester" + ] + }, + { + "code": "CompartmentDefinition" + }, + { + "code": "Composition", + "param": [ + "subject", + "author", + "attester" + ] + }, + { + "code": "ConceptMap" + }, + { + "code": "Condition", + "param": [ + "patient", + "asserter" + ] + }, + { + "code": "Consent", + "param": [ + "patient" + ] + }, + { + "code": "Contract" + }, + { + "code": "Coverage", + "param": [ + "policy-holder", + "subscriber", + "beneficiary", + "payor" + ] + }, + { + "code": "DataElement" + }, + { + "code": "DetectedIssue", + "param": [ + "patient" + ] + }, + { + "code": "Device" + }, + { + "code": "DeviceComponent" + }, + { + "code": "DeviceMetric" + }, + { + "code": "DeviceRequest", + "param": [ + "subject", + "requester", + "performer" + ] + }, + { + "code": "DeviceUseStatement", + "param": [ + "subject" + ] + }, + { + "code": "DiagnosticReport", + "param": [ + "subject" + ] + }, + { + "code": "DocumentManifest", + "param": [ + "subject", + "author", + "recipient" + ] + }, + { + "code": "DocumentReference", + "param": [ + "subject", + "author" + ] + }, + { + "code": "EligibilityRequest", + "param": [ + "patient" + ] + }, + { + "code": "EligibilityResponse" + }, + { + "code": "Encounter", + "param": [ + "patient" + ] + }, + { + "code": "Endpoint" + }, + { + "code": "EnrollmentRequest", + "param": [ + "subject" + ] + }, + { + "code": "EnrollmentResponse" + }, + { + "code": "EpisodeOfCare", + "param": [ + "patient" + ] + }, + { + "code": "ExpansionProfile" + }, + { + "code": "ExplanationOfBenefit", + "param": [ + "patient", + "payee" + ] + }, + { + "code": "FamilyMemberHistory", + "param": [ + "patient" + ] + }, + { + "code": "Flag", + "param": [ + "patient" + ] + }, + { + "code": "Goal", + "param": [ + "patient" + ] + }, + { + "code": "GraphDefinition" + }, + { + "code": "Group", + "param": [ + "member" + ] + }, + { + "code": "GuidanceResponse" + }, + { + "code": "HealthcareService" + }, + { + "code": "ImagingManifest", + "param": [ + "patient", + "author" + ] + }, + { + "code": "ImagingStudy", + "param": [ + "patient" + ] + }, + { + "code": "Immunization", + "param": [ + "patient" + ] + }, + { + "code": "ImmunizationRecommendation", + "param": [ + "patient" + ] + }, + { + "code": "ImplementationGuide" + }, + { + "code": "Library" + }, + { + "code": "Linkage" + }, + { + "code": "List", + "param": [ + "subject", + "source" + ] + }, + { + "code": "Location" + }, + { + "code": "Measure" + }, + { + "code": "MeasureReport", + "param": [ + "patient" + ] + }, + { + "code": "Media", + "param": [ + "subject" + ] + }, + { + "code": "Medication" + }, + { + "code": "MedicationAdministration", + "param": [ + "patient", + "performer", + "subject" + ] + }, + { + "code": "MedicationDispense", + "param": [ + "subject", + "patient", + "receiver" + ] + }, + { + "code": "MedicationRequest", + "param": [ + "subject" + ] + }, + { + "code": "MedicationStatement", + "param": [ + "subject" + ] + }, + { + "code": "MessageDefinition" + }, + { + "code": "MessageHeader" + }, + { + "code": "NamingSystem" + }, + { + "code": "NutritionOrder", + "param": [ + "patient" + ] + }, + { + "code": "Observation", + "param": [ + "subject", + "performer" + ] + }, + { + "code": "OperationDefinition" + }, + { + "code": "OperationOutcome" + }, + { + "code": "Organization" + }, + { + "code": "Patient", + "param": [ + "link" + ] + }, + { + "code": "PaymentNotice" + }, + { + "code": "PaymentReconciliation" + }, + { + "code": "Person", + "param": [ + "patient" + ] + }, + { + "code": "PlanDefinition" + }, + { + "code": "Practitioner" + }, + { + "code": "PractitionerRole" + }, + { + "code": "Procedure", + "param": [ + "patient", + "performer" + ] + }, + { + "code": "ProcedureRequest", + "param": [ + "subject", + "performer" + ] + }, + { + "code": "ProcessRequest" + }, + { + "code": "ProcessResponse" + }, + { + "code": "Provenance", + "param": [ + "target.subject", + "target.patient", + "patient" + ] + }, + { + "code": "Questionnaire" + }, + { + "code": "QuestionnaireResponse", + "param": [ + "subject", + "author" + ] + }, + { + "code": "ReferralRequest", + "param": [ + "patient", + "requester" + ] + }, + { + "code": "RelatedPerson", + "param": [ + "patient" + ] + }, + { + "code": "RequestGroup", + "param": [ + "subject", + "participant" + ] + }, + { + "code": "ResearchStudy" + }, + { + "code": "ResearchSubject", + "param": [ + "individual" + ] + }, + { + "code": "RiskAssessment", + "param": [ + "subject" + ] + }, + { + "code": "Schedule", + "param": [ + "actor" + ] + }, + { + "code": "SearchParameter" + }, + { + "code": "Sequence" + }, + { + "code": "ServiceDefinition" + }, + { + "code": "Slot" + }, + { + "code": "Specimen", + "param": [ + "subject" + ] + }, + { + "code": "StructureDefinition" + }, + { + "code": "StructureMap" + }, + { + "code": "Subscription" + }, + { + "code": "Substance" + }, + { + "code": "SupplyDelivery", + "param": [ + "patient" + ] + }, + { + "code": "SupplyRequest", + "param": [ + "requester" + ] + }, + { + "code": "Task" + }, + { + "code": "TestReport" + }, + { + "code": "TestScript" + }, + { + "code": "ValueSet" + }, + { + "code": "VisionPrescription", + "param": [ + "patient" + ] + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Composition.json b/data/SampleData/Stu3/Composition.json new file mode 100644 index 000000000..13ca6d578 --- /dev/null +++ b/data/SampleData/Stu3/Composition.json @@ -0,0 +1,167 @@ +{ + "resourceType": "Composition", + "id": "example", + "text": { + "status": "generated", + "div": "
\n\t\t\t

Consultation note for Henry Levin the 7th

\n\t\t\t

Managed by Good Health Clinic

\n\t\t
" + }, + "identifier": { + "system": "http://healthintersections.com.au/test", + "value": "1" + }, + "status": "final", + "type": { + "coding": [ + { + "system": "http://loinc.org", + "code": "11488-4", + "display": "Consult note" + } + ] + }, + "class": { + "coding": [ + { + "system": "http://loinc.org", + "code": "LP173421-1", + "display": "Report" + } + ] + }, + "subject": { + "reference": "Patient/xcda", + "display": "Henry Levin the 7th" + }, + "encounter": { + "reference": "Encounter/xcda" + }, + "date": "2012-01-04T09:10:14Z", + "author": [ + { + "reference": "Practitioner/xcda-author", + "display": "Harold Hippocrates, MD" + } + ], + "title": "Consultation Note", + "confidentiality": "N", + "attester": [ + { + "mode": [ + "legal" + ], + "time": "2012-01-04T09:10:14Z", + "party": { + "reference": "Practitioner/xcda-author", + "display": "Harold Hippocrates, MD" + } + } + ], + "custodian": { + "reference": "Organization/2.16.840.1.113883.19.5", + "display": "Good Health Clinic" + }, + "relatesTo": [ + { + "code": "replaces", + "targetReference": { + "reference": "Composition/old-example" + } + }, + { + "code": "appends", + "targetIdentifier": { + "system": "http://example.org/fhir/NamingSystem/document-ids", + "value": "ABC123" + } + } + ], + "event": [ + { + "code": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/ActCode", + "code": "HEALTHREC", + "display": "health record" + } + ] + } + ], + "period": { + "start": "2010-07-18", + "end": "2012-11-12" + }, + "detail": [ + { + "reference": "Observation/example" + } + ] + } + ], + "section": [ + { + "title": "History of present illness", + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "11348-0", + "display": "History of past illness Narrative" + } + ] + }, + "text": { + "status": "generated", + "div": "
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\t\tCode\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tDate\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tType\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tBodySite\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tSeverity\n\t\t\t\t\t\t
Stroke2010-07-18Diagnosis\n\t\t\t\t\t\t\n\t\t\t\t\t
Burnt Ear2012-05-24DiagnosisLeft Ear\n\t\t\t\t\t
Asthma2012-11-12Finding\n\t\t\t\t\t\tMild
\n\t\t\t
" + }, + "mode": "snapshot", + "orderedBy": { + "coding": [ + { + "system": "http://hl7.org/fhir/list-order", + "code": "event-date", + "display": "Sorted by Event Date" + } + ] + }, + "entry": [ + { + "reference": "Condition/stroke" + }, + { + "reference": "Condition/example" + }, + { + "reference": "Condition/example2" + } + ] + }, + { + "title": "History of family member diseases", + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "10157-6", + "display": "History of family member diseases Narrative" + } + ] + }, + "text": { + "status": "generated", + "div": "
\n\t\t\t\t

History of family member diseases - not available

\n\t\t\t
" + }, + "mode": "snapshot", + "emptyReason": { + "coding": [ + { + "system": "http://hl7.org/fhir/list-empty-reason", + "code": "withheld", + "display": "Information Withheld" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/ConceptMap.json b/data/SampleData/Stu3/ConceptMap.json new file mode 100644 index 000000000..912c1239d --- /dev/null +++ b/data/SampleData/Stu3/ConceptMap.json @@ -0,0 +1,61 @@ +{ + "resourceType": "ConceptMap", + "id": "example2", + "text": { + "status": "generated", + "div": "
\n

FHIR-exanple-2 (http://hl7.org/fhir/ConceptMap/example2)

\n

Mapping from http://example.org/fhir/example1 to http://example.org/fhir/example2

\n

DRAFT (not intended for production usage). Published on 13/06/2012 by HL7, Inc (FHIR project team (example): \n http://hl7.org/fhir). \n

\n
\n

An example mapping

\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Source Concept\n \n Equivalence\n \n Destination Concept\n
\n Code [http://example.org/fhir/example1]\n \n http://example.org/fhir/DataElement/example [http://example.org/fhir/example3]\n \n \n Code [http://example.org/fhir/example2]\n
codesome-code:equivalentcode2
\n
" + }, + "url": "http://hl7.org/fhir/ConceptMap/example2", + "name": "FHIR-exanple-2", + "title": "FHIR Example 2", + "status": "draft", + "experimental": true, + "date": "2012-06-13", + "publisher": "HL7, Inc", + "contact": [ + { + "name": "FHIR project team (example)", + "telecom": [ + { + "system": "url", + "value": "http://hl7.org/fhir" + } + ] + } + ], + "description": "An example mapping", + "purpose": "To illustrate mapping features", + "sourceUri": "http://example.org/fhir/example1", + "targetUri": "http://example.org/fhir/example2", + "group": [ + { + "source": "http://example.org/fhir/example1", + "target": "http://example.org/fhir/example2", + "element": [ + { + "code": "code", + "display": "Example Code", + "target": [ + { + "code": "code2", + "display": "Some Example Code", + "equivalence": "equivalent", + "dependsOn": [ + { + "property": "http://example.org/fhir/DataElement/example", + "system": "http://example.org/fhir/example3", + "code": "some-code", + "display": "Something Coded" + } + ] + } + ] + } + ], + "unmapped": { + "mode": "other-map", + "url": "http://example.org/fhir/ConceptMap/map2" + } + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Condition.json b/data/SampleData/Stu3/Condition.json new file mode 100644 index 000000000..adc19c1af --- /dev/null +++ b/data/SampleData/Stu3/Condition.json @@ -0,0 +1,93 @@ +{ + "resourceType": "Condition", + "id": "f201", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: f201

identifier: 12345

clinicalStatus: resolved

verificationStatus: confirmed

category: Problem (Details : {SNOMED CT code '55607006' = 'Problem', given as 'Problem'}; {http://hl7.org/fhir/condition-category code 'problem-list-item' = 'Problem List Item)

severity: Mild (Details : {SNOMED CT code '255604002' = 'Mild', given as 'Mild'})

code: Fever (Details : {SNOMED CT code '386661006' = 'Fever', given as 'Fever'})

bodySite: Entire body as a whole (Details : {SNOMED CT code '38266002' = 'Body as a whole', given as 'Entire body as a whole'})

subject: Roel

context: Encounter/f201

onset: 02/04/2013

abatement: around April 9, 2013

assertedDate: 04/04/2013

asserter: Practitioner/f201

Evidences

-CodeDetail
*degrees C (Details : {SNOMED CT code '258710007' = 'degrees C', given as 'degrees C'})Temperature
" + }, + "identifier": [ + { + "value": "12345" + } + ], + "clinicalStatus": "resolved", + "verificationStatus": "confirmed", + "category": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "55607006", + "display": "Problem" + }, + { + "system": "http://hl7.org/fhir/condition-category", + "code": "problem-list-item" + } + ] + } + ], + "severity": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "255604002", + "display": "Mild" + } + ] + }, + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "386661006", + "display": "Fever" + } + ] + }, + "bodySite": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "38266002", + "display": "Entire body as a whole" + } + ] + } + ], + "subject": { + "reference": "Patient/f201", + "display": "Roel" + }, + "context": { + "reference": "Encounter/f201" + }, + "onsetDateTime": "2013-04-02", + "abatementString": "around April 9, 2013", + "assertedDate": "2013-04-04", + "asserter": { + "reference": "Practitioner/f201" + }, + "evidence": [ + { + "code": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "258710007", + "display": "degrees C" + } + ] + } + ], + "detail": [ + { + "reference": "Observation/f202", + "display": "Temperature" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Consent.json b/data/SampleData/Stu3/Consent.json new file mode 100644 index 000000000..0e5116eef --- /dev/null +++ b/data/SampleData/Stu3/Consent.json @@ -0,0 +1,93 @@ +{ + "resourceType": "Consent", + "id": "consent-example-signature", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: consent-example-signature

identifier: 494e0c7a-a69e-4fb4-9d02-6aae747790d7

status: active

category: HIPAA Authorization (Details : {http://hl7.org/fhir/consentcategorycodes code 'HIPAA-Auth' = 'HIPAA Authorization)

patient: Patient/72

period: 10/10/2015 --> 10/10/2016

dateTime: 26/05/2016 12:41:10 AM

consentingParty: Patient/72

Actors

-RoleReference
*primary information recipient (Details : {http://hl7.org/fhir/v3/ParticipationType code 'PRCP' = 'primary information recipient)Practitioner/13

organization: Organization/example

policyRule: http://hl7.org/fhir/ConsentPolicy/opt-in

except

type: permit

Actors

-RoleReference
*author (originator) (Details : {http://hl7.org/fhir/v3/ParticipationType code 'AUT' = 'author (originator))Practitioner/xcda-author

class: application/hl7-cda+xml (Details: urn:ietf:bcp:13 code application/hl7-cda+xml = 'application/hl7-cda+xml', stated as 'null')

code: Summary of episode note (Details: LOINC code 34133-9 = 'Summary of episode note', stated as 'null'), Discharge summary (Details: LOINC code 18842-5 = 'Discharge summary', stated as 'null')

" + }, + "identifier": { + "system": "urn:oid:2.16.840.1.113883.3.72.5.9.1", + "value": "494e0c7a-a69e-4fb4-9d02-6aae747790d7" + }, + "status": "active", + "category": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/consentcategorycodes", + "code": "HIPAA-Auth" + } + ] + } + ], + "patient": { + "reference": "Patient/72" + }, + "period": { + "start": "2015-10-10", + "end": "2016-10-10" + }, + "dateTime": "2016-05-26T00:41:10-04:00", + "consentingParty": [ + { + "reference": "Patient/72" + } + ], + "actor": [ + { + "role": { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/ParticipationType", + "code": "PRCP" + } + ] + }, + "reference": { + "reference": "Practitioner/13" + } + } + ], + "organization": [ + { + "reference": "Organization/example" + } + ], + "policyRule": "http://hl7.org/fhir/ConsentPolicy/opt-in", + "except": [ + { + "type": "permit", + "actor": [ + { + "role": { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/ParticipationType", + "code": "AUT" + } + ] + }, + "reference": { + "reference": "Practitioner/xcda-author" + } + } + ], + "class": [ + { + "system": "urn:ietf:bcp:13", + "code": "application/hl7-cda+xml" + } + ], + "code": [ + { + "system": "http://loinc.org", + "code": "34133-9" + }, + { + "system": "http://loinc.org", + "code": "18842-5" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Contract.json b/data/SampleData/Stu3/Contract.json new file mode 100644 index 000000000..ff00e7d25 --- /dev/null +++ b/data/SampleData/Stu3/Contract.json @@ -0,0 +1,112 @@ +{ + "resourceType": "Contract", + "id": "pcd-example-notThem", + "text": { + "status": "generated", + "div": "
The following scenario is based on existing\n jurisdictional policy and are realized in existing systems in Canada. The default policy is\n one of implied consent for the provision of care, so these scenarios all deal with withdrawal\n or withholding consent for that purpose. In other jurisdictions, where an express consent\n model is used (Opt-In), these would examples would contain the phrase "consent to" rather than\n "withhold" or "withdraw" consent for.

specific to use-case 4) Withhold or withdraw consent\n for disclosure to a specific provider agent (an individual within an organization)

\n Patient "P. van de Heuvel" ex-spouse, Bill T Lookafter is a Nurse that is employed by Good\n Health Hospital. P. realizes that she may receive treatment at GHH, however she does not\n want her ex-spouse to have any access to her IIHI. She indicates that she would like to\n withdraw/withhold consent to disclose any instance of her health information to her\n ex-spouse as a result of his employment at Good Health Clinic.

\n
" + }, + "issued": "2015-11-18", + "subject": [ + { + "reference": "Patient/f001", + "display": "P. van de Heuvel" + } + ], + "authority": [ + { + "reference": "Organization/2", + "display": "Canada Infoway" + } + ], + "domain": [ + { + "reference": "Location/ukp", + "display": "Canada Infoway" + } + ], + "type": { + "coding": [ + { + "system": "http://loinc.org", + "code": "57016-8" + } + ] + }, + "subType": [ + { + "coding": [ + { + "system": "http://www.infoway-inforoute.ca.org/Consent-subtype-codes", + "code": "Opt-In", + "display": "Default Authorization with exceptions." + } + ] + } + ], + "agent": [ + { + "actor": { + "reference": "Patient/f001" + } + } + ], + "signer": [ + { + "type": { + "system": "http://www.hl7.org/fhir/contractsignertypecodes", + "code": "COVPTY" + }, + "party": { + "reference": "Patient/f001" + }, + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2013-06-08T10:57:34-07:00", + "whoReference": { + "reference": "Patient/f001" + } + } + ] + } + ], + "term": [ + { + "type": { + "coding": [ + { + "system": "http://example.org/fhir/consent-term-type-codes", + "code": "withhold-from", + "display": "Withhold all data from specified actor entity." + } + ] + }, + "topic": [ + { + "reference": "Practitioner/f204", + "display": "Fictive Nurse" + } + ], + "text": "Withhold this order and any results or related objects from specified nurse provider." + } + ], + "friendly": [ + { + "contentAttachment": { + "title": "The terms of the consent in friendly consumer speak." + } + } + ], + "legal": [ + { + "contentAttachment": { + "title": "The terms of the consent in lawyer speak." + } + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/DetectedIssue.json b/data/SampleData/Stu3/DetectedIssue.json new file mode 100644 index 000000000..fa6044bbf --- /dev/null +++ b/data/SampleData/Stu3/DetectedIssue.json @@ -0,0 +1,53 @@ +{ + "resourceType": "DetectedIssue", + "id": "ddi", + "text": { + "status": "generated", + "div": "
\n

Severity: High - Risk of internal bleeding

\n

Those who take acetaminophen along with the widely used blood-thinning drug warfarin may face the risk of serious internal bleeding. People on warfarin who take acetaminophen for at least seven days in a row should be closely watched for bleeding.

\n \n

Mitigation: Jan 5, 2014 by Dr. Adam Careful:

\n

Asked patient to discontinue regular use of Tylenol and to consult with clinician if they need to resume to allow appropriate INR monitoring

\n
" + }, + "status": "final", + "category": { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/ActCode", + "code": "DRG", + "display": "Drug Interaction Alert" + } + ] + }, + "severity": "high", + "date": "2014-01-05", + "author": { + "reference": "Device/software" + }, + "implicated": [ + { + "reference": "MedicationStatement/example001", + "display": "500 mg Acetaminophen tablet 1/day, PRN since 2010" + }, + { + "reference": "MedicationRequest/medrx0331", + "display": "Warfarin 1 MG TAB prescribed Jan. 15, 2015" + } + ], + "detail": "Risk of internal bleeding. Those who take acetaminophen along with the widely used blood-thinning drug warfarin may face the risk of serious internal bleeding. People on warfarin who take acetaminophen for at least seven days in a row should be closely watched for bleeding.", + "mitigation": [ + { + "action": { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/ActCode", + "code": "13", + "display": "Stopped Concurrent Therapy" + } + ], + "text": "Asked patient to discontinue regular use of Tylenol and to consult with clinician if they need to resume to allow appropriate INR monitoring" + }, + "date": "2014-01-05", + "author": { + "reference": "Practitioner/example", + "display": "Dr. Adam Careful" + } + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Device.json b/data/SampleData/Stu3/Device.json new file mode 100644 index 000000000..48d9563b2 --- /dev/null +++ b/data/SampleData/Stu3/Device.json @@ -0,0 +1,55 @@ +{ + "resourceType": "Device", + "id": "example", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example

identifier: 345675, Serial Number = AMID-342135-8464

status: active

type: ECG (Details : {SNOMED CT code '86184003' = 'Electrocardiographic monitor and recorder', given as 'Electrocardiographic monitor and recorder'})

lotNumber: 43453424

manufacturer: Acme Devices, Inc

model: AB 45-J

contact: ph: ext 4352

note: QA Checked

" + }, + "identifier": [ + { + "system": "http://goodcare.org/devices/id", + "value": "345675" + }, + { + "type": { + "coding": [ + { + "system": "http://hl7.org/fhir/identifier-type", + "code": "SNO" + } + ], + "text": "Serial Number" + }, + "value": "AMID-342135-8464" + } + ], + "status": "active", + "type": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "86184003", + "display": "Electrocardiographic monitor and recorder" + } + ], + "text": "ECG" + }, + "lotNumber": "43453424", + "manufacturer": "Acme Devices, Inc", + "model": "AB 45-J", + "contact": [ + { + "system": "phone", + "value": "ext 4352" + } + ], + "note": [ + { + "authorReference": { + "reference": "Practitioner/xcda-author" + }, + "time": "2015-06-28T14:03:32+10:00", + "text": "QA Checked" + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/DeviceMetric.json b/data/SampleData/Stu3/DeviceMetric.json new file mode 100644 index 000000000..b3a91df7f --- /dev/null +++ b/data/SampleData/Stu3/DeviceMetric.json @@ -0,0 +1,53 @@ +{ + "resourceType": "DeviceMetric", + "id": "example", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example

identifier: 345675

type: MDC_PULS_OXIM_SAT_O2 (Details : {https://rtmms.nist.gov code '150456' = '150456', given as 'MDC_PULS_OXIM_SAT_O2'})

unit: MDC_DIM_PERCENT (Details : {https://rtmms.nist.gov code '262688' = '262688', given as 'MDC_DIM_PERCENT'})

source: Device/dev1

parent: DeviceComponent/dc102

operationalStatus: on

color: blue

category: measurement

measurementPeriod: Do Once per 1 seconds

Calibrations

-TypeStateTime
*two-pointcalibrated28/12/2016 9:03:04 AM
" + }, + "identifier": { + "system": "http://goodcare.org/devicemetric/id", + "value": "345675" + }, + "type": { + "coding": [ + { + "system": "https://rtmms.nist.gov", + "code": "150456", + "display": "MDC_PULS_OXIM_SAT_O2" + } + ] + }, + "unit": { + "coding": [ + { + "system": "https://rtmms.nist.gov", + "code": "262688", + "display": "MDC_DIM_PERCENT" + } + ] + }, + "source": { + "reference": "Device/dev1" + }, + "parent": { + "reference": "DeviceComponent/dc102" + }, + "operationalStatus": "on", + "color": "blue", + "category": "measurement", + "measurementPeriod": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "s" + } + }, + "calibration": [ + { + "type": "two-point", + "state": "calibrated", + "time": "2016-12-28T09:03:04-05:00" + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/DeviceRequest.json b/data/SampleData/Stu3/DeviceRequest.json new file mode 100644 index 000000000..ca1b67aa7 --- /dev/null +++ b/data/SampleData/Stu3/DeviceRequest.json @@ -0,0 +1,102 @@ +{ + "resourceType": "DeviceRequest", + "id": "insulinpump", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: insulinpump

identifier: ip_request1.1

definition: DM ambulatory protocol II

basedOn: Homecare - DM follow-up

priorRequest: CGM ambulatory

groupIdentifier: ip_request1

status: active

intent: instance-order (Details )

priority: routine

code: Insulin delivery device panel (Details : {LOINC code '43148-6' = 'Insulin delivery device panel)

subject: Patient/dicom

context: Encounter 1

occurrence: 08/05/2013 9:33:27 AM

authoredOn: 08/05/2013 9:33:27 AM

Requesters

-AgentOnBehalfOf
*Dr. Adam CarefulOrganization/2.16.840.1.113883.19.5

performerType: Nurse (Details : {[not stated] code 'null' = 'null', given as 'Qualified nurse'})

performer: Nurse Rossignol

reasonCode: gastroparesis (Details )

reasonReference: Gastroparesis

supportingInfo: Previous results

note: this is the right device brand and model

relevantHistory: Request for unspecified device

" + }, + "identifier": [ + { + "value": "ip_request1.1" + } + ], + "definition": [ + { + "display": "DM ambulatory protocol II" + } + ], + "basedOn": [ + { + "display": "Homecare - DM follow-up" + } + ], + "priorRequest": [ + { + "display": "CGM ambulatory" + } + ], + "groupIdentifier": { + "value": "ip_request1" + }, + "status": "active", + "intent": { + "coding": [ + { + "code": "original-order" + } + ] + }, + "priority": "routine", + "codeCodeableConcept": { + "coding": [ + { + "system": "http://loinc.org", + "code": "43148-6" + } + ], + "text": "Insulin delivery device panel" + }, + "subject": { + "reference": "Patient/dicom" + }, + "context": { + "display": "Encounter 1" + }, + "occurrenceDateTime": "2013-05-08T09:33:27+07:00", + "authoredOn": "2013-05-08T09:33:27+07:00", + "requester": { + "agent": { + "reference": "Practitioner/example", + "display": "Dr. Adam Careful" + }, + "onBehalfOf": { + "reference": "Organization/2.16.840.1.113883.19.5" + } + }, + "performerType": { + "coding": [ + { + "display": "Qualified nurse" + } + ], + "text": "Nurse" + }, + "performer": { + "display": "Nurse Rossignol" + }, + "reasonCode": [ + { + "text": "gastroparesis" + } + ], + "reasonReference": [ + { + "display": "Gastroparesis" + } + ], + "supportingInfo": [ + { + "display": "Previous results" + } + ], + "note": [ + { + "text": "this is the right device brand and model" + } + ], + "relevantHistory": [ + { + "display": "Request for unspecified device" + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/DeviceUseStatement.json b/data/SampleData/Stu3/DeviceUseStatement.json new file mode 100644 index 000000000..be63c1160 --- /dev/null +++ b/data/SampleData/Stu3/DeviceUseStatement.json @@ -0,0 +1,21 @@ +{ + "resourceType": "DeviceUseStatement", + "id": "example", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example

identifier: 51ebb7a9-4e3a-4360-9a05-0cc2d869086f

status: active

subject: Patient/example

device: Device/example

" + }, + "identifier": [ + { + "system": "http:goodhealth.org/identifiers", + "value": "51ebb7a9-4e3a-4360-9a05-0cc2d869086f" + } + ], + "status": "active", + "subject": { + "reference": "Patient/example" + }, + "device": { + "reference": "Device/example" + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/DiagnosticReport.json b/data/SampleData/Stu3/DiagnosticReport.json new file mode 100644 index 000000000..ac4224dd9 --- /dev/null +++ b/data/SampleData/Stu3/DiagnosticReport.json @@ -0,0 +1,57 @@ +{ + "resourceType": "DiagnosticReport", + "id": "102", + "text": { + "status": "generated", + "div": "
\n\t\t\t

DXA BONE DENSITOMETRY

\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
NAMEXXXXXXX
DOB10/02/1974
REFERRING DRSmith, Jane
INDICATIONSEarly menopause on estrogen levels. No period for 18 months
PROCEDUREDual energy x-ray absorptiometry (DEXA)
\n\t\t\t

Bone Mineral Density

\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
Scan TypeRegionMeasuredAgeBMDT-ScoreZ-Score?BMD(g/cm2)?BMD(%)
AP SpineL1-L417/06/200834.41.148 g/cm²-0.4-0.5--
Left FemurNeck17/06/200834.40.891 g/cm²-1.0-0.9--
Left FemurTotal17/06/200834.40.887 g/cm²-1.2-1.3--
Right FemurNeck17/06/200834.40.885 g/cm²-1.0-1.0--
Right FemurTotal17/06/200834.40.867 g/cm²-1.4-1.4--
\n\t\t\t

Assessment:

\n\t\t\t
    \n\t\t\t\t
  • The Spine L1-L4 BMD is normal.
  • \n\t\t\t\t
  • The Left Femur Neck BMD is in the osteopenic range. Relative fracture risk is about 2.
  • \n\t\t\t\t
  • The Left Femur Total BMD is in the osteopenic range. Relative fracture risk is about 2.
  • \n\t\t\t\t
  • The Right Femur Neck BMD is in the osteopenic range. Relative fracture risk is about 2.
  • \n\t\t\t\t
  • The Right Femur Total BMD is in the osteopenic range. Relative fracture risk is about 2.
  • \n\t\t\t
\n\t\t\t

\n\t\t\t\tCOMMENT\n\t\t\t

\n\t\t\t

Osteopenia on measured BMD. The estimated 10-year probability of fracture based on present age, gender and measured BMD is less than 10%. This absolute fracture risk remains low. A follow-up assessment may be considered in 2 to 3 years to monitor the trend in BMD.

\n\t\t\t

Thank you for your referral. Dr Henry Seven 17/06/2008

\n\t\t\t
\nNote:\nWHO classification of osteoporosis (WHO Technical Report Series 1994: 843)\n- Normal: T-score equal to -1.0 s.d. or higher\n- Osteopenia: T-score  between -1.0 and -2.5 s.d.\n- Osteoporosis: T-score equal to -2.5 s.d. or lower\n- Severe/Established osteoporosis: Osteoporosis with one or more fragility fracture.\nT-score: The number of s.d. from the mean BMD for a gender-matched young adult population.\nZ-score: The number of s.d. from the mean BMD for an age-, weight- and gender-matched population.\nReference for 10-year probability of fracture risk: Kanis JA, Johnell O, Oden A, Dawson A,  De Laet C, Jonsson B. Ten year probabilities of osteoporotic fractures according to BMD and diagnostic thresholds. Osteoporos.Int. 2001;12(12):989-995.\nGE LUNAR PRODIGY DENSITOMETER\n
\n\t\t
" + }, + "status": "final", + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "38269-7" + } + ], + "text": "DXA BONE DENSITOMETRY" + }, + "subject": { + "reference": "Patient/pat2" + }, + "effectiveDateTime": "2008-06-17", + "issued": "2008-06-18T09:23:00+10:00", + "performer": [ + { + "role": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "66862007", + "display": "Radiologist" + } + ], + "text": "Radiologist" + }, + "actor": { + "reference": "Practitioner/3ad0687e-f477-468c-afd5-fcc2bf897809", + "display": "Dr Henry Seven" + } + } + ], + "result": [ + { + "reference": "Observation/bmd" + } + ], + "codedDiagnosis": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "391040000", + "display": "At risk of osteoporotic fracture" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/DocumentManifest.json b/data/SampleData/Stu3/DocumentManifest.json new file mode 100644 index 000000000..1123c7629 --- /dev/null +++ b/data/SampleData/Stu3/DocumentManifest.json @@ -0,0 +1,76 @@ +{ + "resourceType": "DocumentManifest", + "id": "example", + "text": { + "status": "generated", + "div": "
Text
" + }, + "contained": [ + { + "resourceType": "Practitioner", + "id": "a1", + "name": [ + { + "family": "Dopplemeyer", + "given": [ + "Sherry" + ] + } + ], + "telecom": [ + { + "system": "email", + "value": "john.doe@healthcare.example.org" + } + ] + } + ], + "masterIdentifier": { + "system": "http://example.org/documents", + "value": "23425234234-2346" + }, + "identifier": [ + { + "system": "http://example.org/documents", + "value": "23425234234-2347" + } + ], + "status": "current", + "type": { + "text": "History and Physical" + }, + "subject": { + "reference": "Patient/xcda" + }, + "created": "2004-12-25T23:50:50-05:00", + "author": [ + { + "reference": "#a1" + } + ], + "recipient": [ + { + "reference": "Practitioner/xcda1" + } + ], + "source": "urn:oid:1.3.6.1.4.1.21367.2009.1.2.1", + "description": "Physical", + "content": [ + { + "pReference": { + "reference": "DocumentReference/example" + } + } + ], + "related": [ + { + "identifier": { + "system": "http://example.org/documents", + "value": "23425234234-9999" + }, + "ref": { + "reference": "DocumentReference/example" + } + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/DocumentReference.json b/data/SampleData/Stu3/DocumentReference.json new file mode 100644 index 000000000..9aee696a6 --- /dev/null +++ b/data/SampleData/Stu3/DocumentReference.json @@ -0,0 +1,159 @@ +{ + "resourceType": "DocumentReference", + "id": "example", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example

contained:

masterIdentifier: urn:oid:1.3.6.1.4.1.21367.2005.3.7

identifier: urn:oid:1.3.6.1.4.1.21367.2005.3.7.1234

status: current

docStatus: preliminary

type: Outpatient Note (Details : {LOINC code '34108-1' = 'Outpatient Note', given as 'Outpatient Note'})

class: History and Physical (Details : {http://ihe.net/xds/connectathon/classCodes code 'History and Physical' = 'History and Physical', given as 'History and Physical'})

subject: Patient/xcda

created: 24/12/2005 9:35:00 AM

indexed: 24/12/2005 9:43:41 AM

author: Practitioner/xcda1, id: a2; Gerald Smitty

authenticator: Organization/f001

custodian: Organization/f001

RelatesTos

-CodeTarget
*appendsDocumentReference/example

description: Physical

securityLabel: very restricted (Details : {http://hl7.org/fhir/v3/Confidentiality code 'V' = 'very restricted', given as 'very restricted'})

Contents

-AttachmentFormat
*History and Physical Specification (Details: urn:oid:1.3.6.1.4.1.19376.1.2.3 code urn:ihe:pcc:handp:2008 = 'urn:ihe:pcc:handp:2008', stated as 'History and Physical Specification')

context

encounter: Encounter/xcda

event: Arm (Details : {http://ihe.net/xds/connectathon/eventCodes code 'T-D8200' = 'T-D8200', given as 'Arm'})

period: 23/12/2004 8:00:00 AM --> 23/12/2004 8:01:00 AM

facilityType: Outpatient (Details : {http://www.ihe.net/xds/connectathon/healthcareFacilityTypeCodes code 'Outpatient' = 'Outpatient', given as 'Outpatient'})

practiceSetting: General Medicine (Details : {http://www.ihe.net/xds/connectathon/practiceSettingCodes code 'General Medicine' = 'General Medicine', given as 'General Medicine'})

sourcePatientInfo: Patient/xcda

Relateds

-IdentifierRef
*urn:oid:1.3.6.1.4.1.21367.2005.3.7.2345Patient/xcda
" + }, + "contained": [ + { + "resourceType": "Practitioner", + "id": "a2", + "name": [ + { + "family": "Smitty", + "given": [ + "Gerald" + ] + } + ] + } + ], + "masterIdentifier": { + "system": "urn:ietf:rfc:3986", + "value": "urn:oid:1.3.6.1.4.1.21367.2005.3.7" + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:oid:1.3.6.1.4.1.21367.2005.3.7.1234" + } + ], + "status": "current", + "docStatus": "preliminary", + "type": { + "coding": [ + { + "system": "http://loinc.org", + "code": "34108-1", + "display": "Outpatient Note" + } + ] + }, + "class": { + "coding": [ + { + "system": "http://ihe.net/xds/connectathon/classCodes", + "code": "History and Physical", + "display": "History and Physical" + } + ] + }, + "subject": { + "reference": "Patient/xcda" + }, + "created": "2005-12-24T09:35:00+11:00", + "indexed": "2005-12-24T09:43:41+11:00", + "author": [ + { + "reference": "Practitioner/xcda1" + }, + { + "reference": "#a2" + } + ], + "authenticator": { + "reference": "Organization/f001" + }, + "custodian": { + "reference": "Organization/f001" + }, + "relatesTo": [ + { + "code": "appends", + "target": { + "reference": "DocumentReference/example" + } + } + ], + "description": "Physical", + "securityLabel": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/Confidentiality", + "code": "V", + "display": "very restricted" + } + ] + } + ], + "content": [ + { + "attachment": { + "contentType": "application/hl7-v3+xml", + "language": "en-US", + "url": "http://example.org/xds/mhd/Binary/07a6483f-732b-461e-86b6-edb665c45510", + "size": 3654, + "hash": "2jmj7l5rSw0yVb/vlWAYkK/YBwk=" + }, + "format": { + "system": "urn:oid:1.3.6.1.4.1.19376.1.2.3", + "code": "urn:ihe:pcc:handp:2008", + "display": "History and Physical Specification" + } + } + ], + "context": { + "encounter": { + "reference": "Encounter/xcda" + }, + "event": [ + { + "coding": [ + { + "system": "http://ihe.net/xds/connectathon/eventCodes", + "code": "T-D8200", + "display": "Arm" + } + ] + } + ], + "period": { + "start": "2004-12-23T08:00:00+11:00", + "end": "2004-12-23T08:01:00+11:00" + }, + "facilityType": { + "coding": [ + { + "system": "http://www.ihe.net/xds/connectathon/healthcareFacilityTypeCodes", + "code": "Outpatient", + "display": "Outpatient" + } + ] + }, + "practiceSetting": { + "coding": [ + { + "system": "http://www.ihe.net/xds/connectathon/practiceSettingCodes", + "code": "General Medicine", + "display": "General Medicine" + } + ] + }, + "sourcePatientInfo": { + "reference": "Patient/xcda" + }, + "related": [ + { + "identifier": { + "system": "urn:ietf:rfc:3986", + "value": "urn:oid:1.3.6.1.4.1.21367.2005.3.7.2345" + }, + "ref": { + "reference": "Patient/xcda" + } + } + ] + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/EligibilityRequest.json b/data/SampleData/Stu3/EligibilityRequest.json new file mode 100644 index 000000000..f798aa70d --- /dev/null +++ b/data/SampleData/Stu3/EligibilityRequest.json @@ -0,0 +1,72 @@ +{ + "resourceType": "EligibilityRequest", + "id": "52346", + "text": { + "status": "generated", + "div": "
A human-readable rendering of the EligibilityRequest
" + }, + "identifier": [ + { + "system": "http://happyvalley.com/elegibilityrequest", + "value": "52346" + } + ], + "status": "active", + "priority": { + "coding": [ + { + "code": "normal" + } + ] + }, + "patient": { + "reference": "Patient/pat1" + }, + "servicedDate": "2014-09-17", + "created": "2014-08-16", + "enterer": { + "identifier": { + "system": "http://happyvalleyclinic.com/staff", + "value": "14" + } + }, + "provider": { + "identifier": { + "system": "http://happyvalleyclinic.com/staff", + "value": "18" + } + }, + "organization": { + "reference": "Organization/1" + }, + "insurer": { + "reference": "Organization/2" + }, + "facility": { + "identifier": { + "system": "http://statecliniclicensor.com/clinicid", + "value": "G35B9" + } + }, + "coverage": { + "reference": "Coverage/9876B1" + }, + "businessArrangement": "NB8742", + "benefitCategory": { + "coding": [ + { + "system": "http://hl7.org/fhir/benefit-category", + "code": "medical" + } + ] + }, + "benefitSubCategory": { + "coding": [ + { + "system": "http://hl7.org/fhir/benefit-subcategory", + "code": "69", + "display": "Maternity" + } + ] + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/EligibilityResponse.json b/data/SampleData/Stu3/EligibilityResponse.json new file mode 100644 index 000000000..fa30c9f93 --- /dev/null +++ b/data/SampleData/Stu3/EligibilityResponse.json @@ -0,0 +1,292 @@ +{ + "resourceType": "EligibilityResponse", + "id": "E2502", + "text": { + "status": "generated", + "div": "
A human-readable rendering of the EligibilityResponse.
" + }, + "identifier": [ + { + "system": "http://www.BenefitsInc.com/fhir/eligibilityresponse", + "value": "8812342" + } + ], + "status": "active", + "created": "2014-09-16", + "requestProvider": { + "identifier": { + "system": "http://national.org/provider", + "value": "PR9876" + } + }, + "requestOrganization": { + "identifier": { + "system": "http://national.org/clinic", + "value": "OR1234" + } + }, + "request": { + "reference": "http://www.BenefitsInc.com/fhir/eligibility/225476332405" + }, + "outcome": { + "coding": [ + { + "system": "http://hl7.org/fhir/remittance-outcome", + "code": "complete" + } + ] + }, + "disposition": "Policy is currently in-force.", + "insurer": { + "reference": "Organization/2" + }, + "inforce": true, + "insurance": [ + { + "coverage": { + "reference": "#coverage-1" + }, + "contract": { + "reference": "http://www.BenefitsInc.com/fhir/contract/NBU22547" + }, + "benefitBalance": [ + { + "category": { + "coding": [ + { + "system": "http://hl7.org/fhir/benefit-category", + "code": "medical" + } + ] + }, + "subCategory": { + "coding": [ + { + "system": "http://hl7.org/fhir/benefit-subcategory", + "code": "30", + "display": "Health Benefit Plan Coverage" + } + ] + }, + "network": { + "coding": [ + { + "system": "http://hl7.org/fhir/benefit-network", + "code": "in" + } + ] + }, + "unit": { + "coding": [ + { + "system": "http://hl7.org/fhir/benefit-unit", + "code": "individual" + } + ] + }, + "term": { + "coding": [ + { + "system": "http://hl7.org/fhir/benefit-term", + "code": "annual" + } + ] + }, + "financial": [ + { + "type": { + "coding": [ + { + "code": "benefit" + } + ] + }, + "allowedMoney": { + "value": 500000, + "system": "urn:iso:std:iso:4217", + "code": "USD" + }, + "usedMoney": { + "value": 3748.00, + "system": "urn:iso:std:iso:4217", + "code": "USD" + } + }, + { + "type": { + "coding": [ + { + "code": "copay-maximum" + } + ] + }, + "allowedMoney": { + "value": 100, + "system": "urn:iso:std:iso:4217", + "code": "USD" + } + }, + { + "type": { + "coding": [ + { + "code": "copay-percent" + } + ] + }, + "allowedUnsignedInt": 20 + } + ] + }, + { + "category": { + "coding": [ + { + "system": "http://hl7.org/fhir/benefit-category", + "code": "medical" + } + ] + }, + "subCategory": { + "coding": [ + { + "system": "http://hl7.org/fhir/benefit-subcategory", + "code": "69", + "display": "Maternity" + } + ] + }, + "network": { + "coding": [ + { + "system": "http://hl7.org/fhir/benefit-network", + "code": "in" + } + ] + }, + "unit": { + "coding": [ + { + "system": "http://hl7.org/fhir/benefit-unit", + "code": "individual" + } + ] + }, + "term": { + "coding": [ + { + "system": "http://hl7.org/fhir/benefit-term", + "code": "annual" + } + ] + }, + "financial": [ + { + "type": { + "coding": [ + { + "code": "benefit" + } + ] + }, + "allowedMoney": { + "value": 15000, + "system": "urn:iso:std:iso:4217", + "code": "USD" + } + } + ] + }, + { + "category": { + "coding": [ + { + "system": "http://hl7.org/fhir/benefit-category", + "code": "oral" + } + ] + }, + "subCategory": { + "coding": [ + { + "system": "http://hl7.org/fhir/benefit-subcategory", + "code": "F3", + "display": "Dental Coverage" + } + ] + }, + "network": { + "coding": [ + { + "system": "http://hl7.org/fhir/benefit-network", + "code": "in" + } + ] + }, + "unit": { + "coding": [ + { + "system": "http://hl7.org/fhir/benefit-unit", + "code": "individual" + } + ] + }, + "term": { + "coding": [ + { + "system": "http://hl7.org/fhir/benefit-term", + "code": "annual" + } + ] + }, + "financial": [ + { + "type": { + "coding": [ + { + "code": "benefit" + } + ] + }, + "allowedMoney": { + "value": 2000, + "system": "urn:iso:std:iso:4217", + "code": "USD" + } + } + ] + }, + { + "category": { + "coding": [ + { + "system": "http://hl7.org/fhir/benefit-category", + "code": "vision" + } + ] + }, + "subCategory": { + "coding": [ + { + "system": "http://hl7.org/fhir/benefit-subcategory", + "code": "F6", + "display": "Vision Coverage" + } + ] + }, + "excluded": true, + "name": "Vision", + "description": "Vision products and services such as exams, glasses and contatc lenses." + } + ] + } + ], + "form": { + "coding": [ + { + "system": "http://national.org/form", + "code": "ELRSP/2017/01" + } + ] + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Encounter.json b/data/SampleData/Stu3/Encounter.json new file mode 100644 index 000000000..330210687 --- /dev/null +++ b/data/SampleData/Stu3/Encounter.json @@ -0,0 +1,88 @@ +{ + "resourceType": "Encounter", + "id": "f202", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: f202

identifier: Encounter_Roel_20130128 (TEMP)

status: finished

class: ambulatory (Details: http://hl7.org/fhir/v3/ActCode code AMB = 'ambulatory', stated as 'ambulatory')

type: Chemotherapy (Details : {SNOMED CT code '367336001' = 'Chemotherapy', given as 'Chemotherapy'})

priority: Urgent (Details : {SNOMED CT code '103391001' = 'Urgency', given as 'Urgent'})

subject: Roel

Participants

-Individual
*Practitioner/f201

length: 56 minutes (Details: UCUM code min = 'min')

reason: The patient is treated for a tumor. (Details )

Diagnoses

-ConditionRoleRank
*Complications from Roel's TPF chemotherapy on January 28th, 2013Admission diagnosis (Details : {http://hl7.org/fhir/diagnosis-role code 'AD' = 'Admission diagnosis', given as 'Admission diagnosis'})1

serviceProvider: Organization/f201

" + }, + "identifier": [ + { + "use": "temp", + "value": "Encounter_Roel_20130128" + } + ], + "status": "finished", + "class": { + "system": "http://hl7.org/fhir/v3/ActCode", + "code": "AMB", + "display": "ambulatory" + }, + "type": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "367336001", + "display": "Chemotherapy" + } + ] + } + ], + "priority": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "103391001", + "display": "Urgent" + } + ] + }, + "subject": { + "reference": "Patient/f201", + "display": "Roel" + }, + "participant": [ + { + "individual": { + "reference": "Practitioner/f201" + } + } + ], + "length": { + "value": 56, + "unit": "minutes", + "system": "http://unitsofmeasure.org", + "code": "min" + }, + "reason": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/encounter-primaryDiagnosis", + "valuePositiveInt": 2 + } + ], + "text": "The patient is treated for a tumor." + } + ], + "diagnosis": [ + { + "condition": { + "display": "Complications from Roel's TPF chemotherapy on January 28th, 2013" + }, + "role": { + "coding": [ + { + "system": "http://hl7.org/fhir/diagnosis-role", + "code": "AD", + "display": "Admission diagnosis" + } + ] + }, + "rank": 1 + } + ], + "serviceProvider": { + "reference": "Organization/f201" + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/EnrollmentRequest.json b/data/SampleData/Stu3/EnrollmentRequest.json new file mode 100644 index 000000000..820a821d3 --- /dev/null +++ b/data/SampleData/Stu3/EnrollmentRequest.json @@ -0,0 +1,25 @@ +{ + "resourceType": "EnrollmentRequest", + "id": "22345", + "text": { + "status": "generated", + "div": "
A human-readable rendering of the EnrollmentRequest.
" + }, + "identifier": [ + { + "system": "http://happyvalley.com/enrollmentrequest", + "value": "EN22345" + } + ], + "status": "active", + "created": "2014-08-16", + "organization": { + "reference": "Organization/1" + }, + "subject": { + "reference": "Patient/1" + }, + "coverage": { + "reference": "Coverage/9876B1" + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/EnrollmentResponse.json b/data/SampleData/Stu3/EnrollmentResponse.json new file mode 100644 index 000000000..4b58287b1 --- /dev/null +++ b/data/SampleData/Stu3/EnrollmentResponse.json @@ -0,0 +1,31 @@ +{ + "resourceType": "EnrollmentResponse", + "id": "ER2500", + "text": { + "status": "generated", + "div": "
A human-readable rendering of the EnrollmentResponse
" + }, + "identifier": [ + { + "system": "http://www.BenefitsInc.com/fhir/enrollmentresponse", + "value": "781234" + } + ], + "status": "active", + "request": { + "reference": "http://www.BenefitsInc.com/fhir/eligibility/225476332402" + }, + "outcome": { + "coding": [ + { + "system": "http://hl7.org/fhir/remittance-outcome", + "code": "complete" + } + ] + }, + "disposition": "Dependant added to policy.", + "created": "2014-08-16", + "organization": { + "reference": "Organization/2" + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/ExplanationOfBenefit.json b/data/SampleData/Stu3/ExplanationOfBenefit.json new file mode 100644 index 000000000..c3bf2f8a9 --- /dev/null +++ b/data/SampleData/Stu3/ExplanationOfBenefit.json @@ -0,0 +1,170 @@ +{ + "resourceType": "ExplanationOfBenefit", + "id": "EB3500", + "text": { + "status": "generated", + "div": "
A human-readable rendering of the ExplanationOfBenefit
" + }, + "identifier": [ + { + "system": "http://www.BenefitsInc.com/fhir/explanationofbenefit", + "value": "987654321" + } + ], + "status": "active", + "type": { + "coding": [ + { + "system": "http://hl7.org/fhir/ex-claimtype", + "code": "oral" + } + ] + }, + "patient": { + "reference": "Patient/pat1" + }, + "created": "2014-08-16", + "enterer": { + "reference": "Practitioner/1" + }, + "provider": { + "reference": "Practitioner/1" + }, + "organization": { + "reference": "Organization/2" + }, + "facility": { + "reference": "Location/1" + }, + "claim": { + "reference": "Claim/100150" + }, + "claimResponse": { + "reference": "ClaimResponse/R3500" + }, + "outcome": { + "coding": [ + { + "system": "http://hl7.org/fhir/remittance-outcome", + "code": "complete" + } + ] + }, + "disposition": "Claim settled as per contract.", + "payee": { + "type": { + "coding": [ + { + "system": "http://hl7.org/fhir/payeetype", + "code": "provider" + } + ] + }, + "resourceType": { + "coding": [ + { + "system": "http://hl7.org/fhir/resource-type-link", + "code": "organization" + } + ] + }, + "party": { + "reference": "Organization/2" + } + }, + "careTeam": [ + { + "sequence": 1, + "provider": { + "reference": "Practitioner/example" + } + } + ], + "insurance": { + "coverage": { + "reference": "Coverage/9876B1" + } + }, + "item": [ + { + "sequence": 1, + "careTeamLinkId": [ + 1 + ], + "service": { + "coding": [ + { + "system": "http://hl7.org/fhir/service-uscls", + "code": "1200" + } + ] + }, + "servicedDate": "2014-08-16", + "unitPrice": { + "value": 135.57, + "system": "urn:iso:std:iso:4217", + "code": "USD" + }, + "net": { + "value": 135.57, + "system": "urn:iso:std:iso:4217", + "code": "USD" + }, + "encounter": [ + { + "reference": "Encounter/example" + } + ], + "adjudication": [ + { + "category": { + "coding": [ + { + "code": "eligible" + } + ] + }, + "amount": { + "value": 120.00, + "system": "urn:iso:std:iso:4217", + "code": "USD" + } + }, + { + "category": { + "coding": [ + { + "code": "eligpercent" + } + ] + }, + "value": 0.80 + }, + { + "category": { + "coding": [ + { + "code": "benefit" + } + ] + }, + "amount": { + "value": 96.00, + "system": "urn:iso:std:iso:4217", + "code": "USD" + } + } + ] + } + ], + "totalCost": { + "value": 135.57, + "system": "urn:iso:std:iso:4217", + "code": "USD" + }, + "totalBenefit": { + "value": 96.00, + "system": "urn:iso:std:iso:4217", + "code": "USD" + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/FamilyMemberHistory.json b/data/SampleData/Stu3/FamilyMemberHistory.json new file mode 100644 index 000000000..f3cf16125 --- /dev/null +++ b/data/SampleData/Stu3/FamilyMemberHistory.json @@ -0,0 +1,60 @@ +{ + "resourceType": "FamilyMemberHistory", + "id": "father", + "text": { + "status": "generated", + "div": "
Father died of a heart attack aged 74
" + }, + "identifier": [ + { + "value": "12345" + } + ], + "definition": [ + { + "display": "Family Member History Questionnaire" + } + ], + "status": "completed", + "notDone": false, + "patient": { + "reference": "Patient/example", + "display": "Peter Patient" + }, + "date": "2011-03-18", + "relationship": { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/RoleCode", + "code": "FTH", + "display": "father" + } + ] + }, + "gender": "male", + "condition": [ + { + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "315619001", + "display": "Myocardial Infarction" + } + ], + "text": "Heart Attack" + }, + "onsetAge": { + "value": 74, + "unit": "yr", + "system": "http://unitsofmeasure.org", + "code": "a" + }, + "note": [ + { + "text": "Was fishing at the time. At least he went doing someting he loved." + } + ] + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Flag.json b/data/SampleData/Stu3/Flag.json new file mode 100644 index 000000000..8768cd096 --- /dev/null +++ b/data/SampleData/Stu3/Flag.json @@ -0,0 +1,46 @@ +{ + "resourceType": "Flag", + "id": "example", + "text": { + "status": "generated", + "div": "
Large Dog warning for Peter Patient
" + }, + "identifier": [ + { + "value": "12345" + } + ], + "status": "inactive", + "category": { + "coding": [ + { + "system": "http://example.org/local", + "code": "admin", + "display": "Admin" + } + ], + "text": "admin" + }, + "code": { + "coding": [ + { + "system": "http://example.org/local", + "code": "bigdog", + "display": "Big dog" + } + ], + "text": "Patient has a big dog at his home. Always always wear a suit of armor or take other active counter-measures" + }, + "subject": { + "reference": "Patient/example", + "display": "Peter Patient" + }, + "period": { + "start": "2015-01-17", + "end": "2016-12-01" + }, + "author": { + "reference": "Practitioner/example", + "display": "Nancy Nurse" + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Goal.json b/data/SampleData/Stu3/Goal.json new file mode 100644 index 000000000..184d1d73e --- /dev/null +++ b/data/SampleData/Stu3/Goal.json @@ -0,0 +1,85 @@ +{ + "resourceType": "Goal", + "id": "example", + "text": { + "status": "additional", + "div": "
\n\t\t\t

A simple care goal for a patient to lose weight due to obesity.

\n\t\t
" + }, + "identifier": [ + { + "value": "123" + } + ], + "status": "sustaining", + "category": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/goal-category", + "code": "dietary" + } + ] + } + ], + "priority": { + "coding": [ + { + "system": "http://hl7.org/fhir/goal-priority", + "code": "high-priority", + "display": "High Priority" + } + ], + "text": "high" + }, + "description": { + "text": "Target weight is 160 to 180 lbs." + }, + "subject": { + "reference": "Patient/example", + "display": "Peter James Chalmers" + }, + "startDate": "2015-04-05", + "target": { + "measure": { + "coding": [ + { + "system": "http://loinc.org", + "code": "3141-9", + "display": "Weight Measured" + } + ] + }, + "detailRange": { + "low": { + "value": 160, + "unit": "lbs", + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" + }, + "high": { + "value": 180, + "unit": "lbs", + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" + } + }, + "dueDate": "2016-04-05" + }, + "statusDate": "2016-02-14", + "statusReason": "Patient wants to defer weight loss until after honeymoon.", + "expressedBy": { + "reference": "Patient/example", + "display": "Peter James Chalmers" + }, + "addresses": [ + { + "display": "obesity condition" + } + ], + "outcomeReference": [ + { + "reference": "Observation/example", + "display": "Body Weight Measured" + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/GraphDefinition.json b/data/SampleData/Stu3/GraphDefinition.json new file mode 100644 index 000000000..01b9cb9c6 --- /dev/null +++ b/data/SampleData/Stu3/GraphDefinition.json @@ -0,0 +1,59 @@ +{ + "resourceType": "GraphDefinition", + "id": "example", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example

url: http://h7.org/fhir/GraphDefinition/example

name: Document Generation Template

status: draft

date: 04/08/2015

publisher: FHIR Project

contact:

description: Specify to include list references when generating a document using the $document operation

start: Composition

link

path: Composition.section.entry

description: Link to List

target

type: List

Compartments

-CodeRule
*Patientidentical

Links

-
*
" + }, + "url": "http://h7.org/fhir/GraphDefinition/example", + "name": "Document Generation Template", + "status": "draft", + "date": "2015-08-04", + "publisher": "FHIR Project", + "contact": [ + { + "telecom": [ + { + "system": "url", + "value": "http://hl7.org/fhir" + } + ] + } + ], + "description": "Specify to include list references when generating a document using the $document operation", + "start": "Composition", + "link": [ + { + "path": "Composition.section.entry", + "description": "Link to List", + "target": [ + { + "type": "List", + "compartment": [ + { + "code": "Patient", + "rule": "identical" + } + ], + "link": [ + { + "path": "List.entry.item", + "description": "Include any list entries", + "target": [ + { + "type": "Resource", + "compartment": [ + { + "code": "Patient", + "rule": "identical" + } + ] + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/GuidanceResponse.json b/data/SampleData/Stu3/GuidanceResponse.json new file mode 100644 index 000000000..9045e3659 --- /dev/null +++ b/data/SampleData/Stu3/GuidanceResponse.json @@ -0,0 +1,33 @@ +{ + "resourceType": "GuidanceResponse", + "id": "example", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example

contained:

requestId: guidanceRequest1

identifier: guidanceResponse1

module: ServiceDefinition/example

status: success

subject: Patient/example

context: Encounter/example

occurrenceDateTime: 10/03/2017 4:02:00 PM

performer: Device/software

reason: Guideline Appropriate Ordering Assessment (Details )

outputParameters: id: outputParameters1

" + }, + "requestId": "guidanceRequest1", + "identifier": { + "system": "http://example.org", + "value": "guidanceResponse1" + }, + "module": { + "reference": "ServiceDefinition/example" + }, + "status": "success", + "subject": { + "reference": "Patient/example" + }, + "context": { + "reference": "Encounter/example" + }, + "occurrenceDateTime": "2017-03-10T16:02:00Z", + "performer": { + "reference": "Device/software" + }, + "reasonCodeableConcept": { + "text": "Guideline Appropriate Ordering Assessment" + }, + "outputParameters": { + "reference": "#outputParameters1" + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/HealthcareService.json b/data/SampleData/Stu3/HealthcareService.json new file mode 100644 index 000000000..80a3f54ee --- /dev/null +++ b/data/SampleData/Stu3/HealthcareService.json @@ -0,0 +1,200 @@ +{ + "resourceType": "HealthcareService", + "id": "example", + "text": { + "status": "generated", + "div": "
\n\t\t\t25 Dec 2013 9:15am - 9:30am: Busy Physiotherapy\n\t\t
" + }, + "identifier": [ + { + "system": "http://example.org/shared-ids", + "value": "HS-12" + } + ], + "active": true, + "providedBy": { + "reference": "Organization/f001", + "display": "Burgers University Medical Center" + }, + "category": { + "coding": [ + { + "system": "http://hl7.org/fhir/service-category", + "code": "8", + "display": "Counselling" + } + ], + "text": "Counselling" + }, + "type": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "394913002", + "display": "Psychotherapy" + } + ] + }, + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "394587001", + "display": "Psychiatry" + } + ] + } + ], + "specialty": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "47505003", + "display": "Posttraumatic stress disorder" + } + ] + } + ], + "location": [ + { + "reference": "Location/1" + } + ], + "name": "Consulting psychologists and/or psychology services", + "comment": "Providing Specialist psychology services to the greater Den Burg area, many years of experience dealing with PTSD issues", + "extraDetails": "Several assessments are required for these specialist services, and the waiting times can be greater than 3 months at times. Existing patients are prioritized when requesting appointments on the schedule.", + "telecom": [ + { + "system": "phone", + "value": "(555) silent", + "use": "work" + }, + { + "system": "email", + "value": "directaddress@example.com", + "use": "work" + } + ], + "coverageArea": [ + { + "reference": "#DenBurg", + "display": "Greater Denburg area" + } + ], + "serviceProvisionCode": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/service-provision-conditions", + "code": "cost", + "display": "Fees apply" + } + ] + } + ], + "eligibility": { + "coding": [ + { + "display": "DVA Required" + } + ] + }, + "eligibilityNote": "Evidence of application for DVA status may be sufficient for commencing assessment", + "programName": [ + "PTSD outreach" + ], + "characteristic": [ + { + "coding": [ + { + "display": "Wheelchair access" + } + ] + } + ], + "referralMethod": [ + { + "coding": [ + { + "code": "phone", + "display": "Phone" + } + ] + }, + { + "coding": [ + { + "code": "fax", + "display": "Fax" + } + ] + }, + { + "coding": [ + { + "code": "elec", + "display": "Secure Messaging" + } + ] + }, + { + "coding": [ + { + "code": "semail", + "display": "Secure Email" + } + ] + } + ], + "appointmentRequired": false, + "availableTime": [ + { + "daysOfWeek": [ + "wed" + ], + "allDay": true + }, + { + "daysOfWeek": [ + "mon", + "tue", + "thu", + "fri" + ], + "availableStartTime": "08:30:00", + "availableEndTime": "05:30:00" + }, + { + "daysOfWeek": [ + "sat", + "fri" + ], + "availableStartTime": "09:30:00", + "availableEndTime": "04:30:00" + } + ], + "notAvailable": [ + { + "description": "Christmas/Boxing Day", + "during": { + "start": "2015-12-25", + "end": "2015-12-26" + } + }, + { + "description": "New Years Day", + "during": { + "start": "2016-01-01", + "end": "2016-01-01" + } + } + ], + "availabilityExceptions": "Reduced capacity is available during the Christmas period", + "endpoint": [ + { + "reference": "Endpoint/example" + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/ImagingStudy.json b/data/SampleData/Stu3/ImagingStudy.json new file mode 100644 index 000000000..3cab24c1b --- /dev/null +++ b/data/SampleData/Stu3/ImagingStudy.json @@ -0,0 +1,142 @@ +{ + "resourceType": "ImagingStudy", + "id": "example-xr", + "text": { + "status": "generated", + "div": "
XR Wrist 3+ Views. John Smith (MRN: 09236). Accession: W12342398. Performed: 2017-01-01. 1 series, 2 images.
" + }, + "uid": "urn:oid:2.16.124.113543.6003.1154777499.30246.19789.3503430046", + "accession": { + "use": "usual", + "type": { + "coding": [ + { + "system": "http://hl7.org/fhir/v2/0203", + "code": "ACSN" + } + ] + }, + "value": "W12342398", + "assigner": { + "reference": "Organization/dicom-organization" + } + }, + "identifier": [ + { + "use": "secondary", + "value": "55551234", + "assigner": { + "reference": "Organization/dicom-organization" + } + } + ], + "availability": "ONLINE", + "modalityList": [ + { + "system": "http://dicom.nema.org/resources/ontology/DCM", + "code": "DX" + } + ], + "patient": { + "reference": "Patient/dicom" + }, + "context": { + "reference": "Encounter/example" + }, + "started": "2017-01-01T11:01:20+03:00", + "basedOn": [ + { + "reference": "ProcedureRequest/example" + } + ], + "referrer": { + "reference": "Practitioner/example" + }, + "interpreter": [ + { + "reference": "Practitioner/example" + } + ], + "endpoint": [ + { + "reference": "Endpoint/example-wadors" + } + ], + "numberOfSeries": 1, + "numberOfInstances": 2, + "procedureReference": [ + { + "reference": "Procedure/example" + } + ], + "procedureCode": [ + { + "coding": [ + { + "system": "http://www.radlex.org", + "code": "RPID2589", + "display": "XR Wrist 3+ Views" + } + ], + "text": "XR Wrist 3+ Views" + } + ], + "reason": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "357009", + "display": "Closed fracture of trapezoidal bone of wrist" + } + ] + }, + "description": "XR Wrist 3+ Views", + "series": [ + { + "uid": "urn:oid:2.16.124.113543.6003.1154777499.30246.19789.3503430045.1", + "number": 3, + "modality": { + "system": "http://dicom.nema.org/resources/ontology/DCM", + "code": "DX" + }, + "description": "XR Wrist 3+ Views", + "numberOfInstances": 2, + "availability": "ONLINE", + "endpoint": [ + { + "reference": "Endpoint/example-wadors" + } + ], + "bodySite": { + "system": "http://snomed.info/sct", + "code": "T-15460", + "display": "Wrist Joint" + }, + "laterality": { + "system": "http://snomed.info/sct", + "code": "419161000", + "display": "Unilateral left" + }, + "started": "2011-01-01T11:01:20+03:00", + "performer": [ + { + "reference": "Practitioner/example" + } + ], + "instance": [ + { + "uid": "urn:oid:2.16.124.113543.6003.1154777499.30246.19789.3503430045.1.1", + "number": 1, + "sopClass": "urn:oid:1.2.840.10008.5.1.4.1.1.2", + "title": "PA VIEW" + }, + { + "uid": "urn:oid:2.16.124.113543.6003.1154777499.30246.19789.3503430045.1.2", + "number": 2, + "sopClass": "urn:oid:1.2.840.10008.5.1.4.1.1.2", + "title": "LL VIEW" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Immunization.json b/data/SampleData/Stu3/Immunization.json new file mode 100644 index 000000000..de2772cae --- /dev/null +++ b/data/SampleData/Stu3/Immunization.json @@ -0,0 +1,157 @@ +{ + "resourceType": "Immunization", + "id": "example", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example

identifier: urn:oid:1.3.6.1.4.1.21367.2005.3.7.1234

status: completed

notGiven: false

vaccineCode: Fluvax (Influenza) (Details : {urn:oid:1.2.36.1.2001.1005.17 code 'FLUVAX' = 'Fluvax)

patient: Patient/example

encounter: Encounter/example

date: 10/01/2013

primarySource: true

location: Location/1

manufacturer: Organization/hl7

lotNumber: AAJN11K

expirationDate: 15/02/2015

site: left arm (Details : {http://hl7.org/fhir/v3/ActSite code 'LA' = 'left arm', given as 'left arm'})

route: Injection, intramuscular (Details : {http://hl7.org/fhir/v3/RouteOfAdministration code 'IM' = 'Injection, intramuscular', given as 'Injection, intramuscular'})

doseQuantity: 5 mg (Details: UCUM code mg = 'mg')

practitioner

role: Ordering Provider (Details : {http://hl7.org/fhir/v2/0443 code 'OP' = 'Ordering Provider)

actor: Practitioner/example

practitioner

role: Administering Provider (Details : {http://hl7.org/fhir/v2/0443 code 'AP' = 'Administering Provider)

actor: Practitioner/example

note: Notes on adminstration of vaccine

Explanations

-Reason
*Procedure to meet occupational requirement (Details : {SNOMED CT code '429060002' = 'Procedure to meet occupational requirement)

Reactions

-DateDetailReported
*10/01/2013Observation/exampletrue

VaccinationProtocols

-DoseSequenceDescriptionAuthoritySeriesSeriesDosesTargetDiseaseDoseStatusDoseStatusReason
*1Vaccination Protocol Sequence 1Organization/hl7Vaccination Series 12Gestational rubella syndrome (Details : {SNOMED CT code '1857005' = 'Gestational rubella syndrome)Counts (Details : {http://hl7.org/fhir/vaccination-protocol-dose-status code 'count' = 'Counts', given as 'Counts'})Cold chain break (Details : {http://hl7.org/fhir/vaccination-protocol-dose-status-reason code 'coldchbrk' = 'Cold chain break', given as 'Cold chain break'})
" + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:oid:1.3.6.1.4.1.21367.2005.3.7.1234" + } + ], + "status": "completed", + "notGiven": false, + "vaccineCode": { + "coding": [ + { + "system": "urn:oid:1.2.36.1.2001.1005.17", + "code": "FLUVAX" + } + ], + "text": "Fluvax (Influenza)" + }, + "patient": { + "reference": "Patient/example" + }, + "encounter": { + "reference": "Encounter/example" + }, + "date": "2013-01-10", + "primarySource": true, + "location": { + "reference": "Location/1" + }, + "manufacturer": { + "reference": "Organization/hl7" + }, + "lotNumber": "AAJN11K", + "expirationDate": "2015-02-15", + "site": { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/ActSite", + "code": "LA", + "display": "left arm" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/RouteOfAdministration", + "code": "IM", + "display": "Injection, intramuscular" + } + ] + }, + "doseQuantity": { + "value": 5, + "system": "http://unitsofmeasure.org", + "code": "mg" + }, + "practitioner": [ + { + "role": { + "coding": [ + { + "system": "http://hl7.org/fhir/v2/0443", + "code": "OP" + } + ] + }, + "actor": { + "reference": "Practitioner/example" + } + }, + { + "role": { + "coding": [ + { + "system": "http://hl7.org/fhir/v2/0443", + "code": "AP" + } + ] + }, + "actor": { + "reference": "Practitioner/example" + } + } + ], + "note": [ + { + "text": "Notes on adminstration of vaccine" + } + ], + "explanation": { + "reason": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "429060002" + } + ] + } + ] + }, + "reaction": [ + { + "date": "2013-01-10", + "detail": { + "reference": "Observation/example" + }, + "reported": true + } + ], + "vaccinationProtocol": [ + { + "doseSequence": 1, + "description": "Vaccination Protocol Sequence 1", + "authority": { + "reference": "Organization/hl7" + }, + "series": "Vaccination Series 1", + "seriesDoses": 2, + "targetDisease": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "1857005" + } + ] + } + ], + "doseStatus": { + "coding": [ + { + "system": "http://hl7.org/fhir/vaccination-protocol-dose-status", + "code": "count", + "display": "Counts" + } + ] + }, + "doseStatusReason": { + "coding": [ + { + "system": "http://hl7.org/fhir/vaccination-protocol-dose-status-reason", + "code": "coldchbrk", + "display": "Cold chain break" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/ImmunizationRecommendation.json b/data/SampleData/Stu3/ImmunizationRecommendation.json new file mode 100644 index 000000000..d892f6e54 --- /dev/null +++ b/data/SampleData/Stu3/ImmunizationRecommendation.json @@ -0,0 +1,91 @@ +{ + "resourceType": "ImmunizationRecommendation", + "id": "example", + "text": { + "status": "generated", + "div": "
Authored by Joginder Madra
" + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:oid:1.3.6.1.4.1.21367.2005.3.7.1235" + } + ], + "patient": { + "reference": "Patient/example" + }, + "recommendation": [ + { + "date": "2015-02-09T11:04:15.817-05:00", + "vaccineCode": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "14745005", + "display": "Hepatitis A vaccine" + } + ] + }, + "doseNumber": 1, + "forecastStatus": { + "text": "Not Complete" + }, + "dateCriterion": [ + { + "code": { + "coding": [ + { + "system": "http://hl7.org/fhir/immunization-recommendation-date-criterion", + "code": "earliest", + "display": "Earliest Date" + } + ] + }, + "value": "2015-12-01T00:00:00-05:00" + }, + { + "code": { + "coding": [ + { + "system": "http://hl7.org/fhir/immunization-recommendation-date-criterion", + "code": "recommended", + "display": "Recommended" + } + ] + }, + "value": "2015-12-01T00:00:00-05:00" + }, + { + "code": { + "coding": [ + { + "system": "http://hl7.org/fhir/immunization-recommendation-date-criterion", + "code": "overdue", + "display": "Past Due Date" + } + ] + }, + "value": "2016-12-28T00:00:00-05:00" + } + ], + "protocol": { + "doseSequence": 1, + "description": "First sequence in protocol", + "authority": { + "reference": "Organization/hl7" + }, + "series": "Vaccination Series 1" + }, + "supportingImmunization": [ + { + "reference": "Immunization/example" + } + ], + "supportingPatientInformation": [ + { + "reference": "Observation/example" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/ImplementationGuide.json b/data/SampleData/Stu3/ImplementationGuide.json new file mode 100644 index 000000000..6dfff1156 --- /dev/null +++ b/data/SampleData/Stu3/ImplementationGuide.json @@ -0,0 +1,102 @@ +{ + "resourceType": "ImplementationGuide", + "id": "example", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example

url: http://hl7.org/fhir/us/daf

version: 0

name: Data Access Framework (DAF)

status: draft

experimental: false

date: 01/01/2015

publisher: ONC / HL7 Joint project

contact: ,

description: The Data Access Framework (DAF) Initiative leverages the HL7 FHIR standards to standardize access to Meaningful Use Stage 2 structured information both within the organization and from external organizations

jurisdiction: United States (Details : {urn:iso:std:iso:3166 code 'US' = 'United States)

copyright: Published by ONC under the standard FHIR license (CC0)

fhirVersion: 1.0.0

Dependencies

-TypeUri
*referencehttp://hl7.org/fhir/ImplementationGuide/uscore

package

name: test

description: Base package (not broken up into multiple packages)

Resources

-ExampleNameDescriptionAcronymSource[x]ExampleFor
*trueTest ExampleA test example to show how a package worksdaf-tsttest.htmlStructureDefinition/daf-patient

Globals

-TypeProfile
*PatientStructureDefinition/daf-patient

binary: http://h7.org/fhir/fhir.css

page

source: patient-example.html

title: Example Patient Page

kind: page

Pages

-
*
" + }, + "url": "http://hl7.org/fhir/us/daf", + "version": "0", + "name": "Data Access Framework (DAF)", + "status": "draft", + "experimental": false, + "date": "2015-01-01", + "publisher": "ONC / HL7 Joint project", + "contact": [ + { + "name": "ONC", + "telecom": [ + { + "system": "url", + "value": "http://www.healthit.gov" + } + ] + }, + { + "name": "HL7", + "telecom": [ + { + "system": "url", + "value": "http://hl7.org/fhir" + } + ] + } + ], + "description": "The Data Access Framework (DAF) Initiative leverages the HL7 FHIR standards to standardize access to Meaningful Use Stage 2 structured information both within the organization and from external organizations", + "jurisdiction": [ + { + "coding": [ + { + "system": "urn:iso:std:iso:3166", + "code": "US" + } + ] + } + ], + "copyright": "Published by ONC under the standard FHIR license (CC0)", + "fhirVersion": "1.0.0", + "dependency": [ + { + "type": "reference", + "uri": "http://hl7.org/fhir/ImplementationGuide/uscore" + } + ], + "package": [ + { + "name": "test", + "description": "Base package (not broken up into multiple packages)", + "resource": [ + { + "example": true, + "name": "Test Example", + "description": "A test example to show how a package works", + "acronym": "daf-tst", + "sourceUri": "test.html", + "exampleFor": { + "reference": "StructureDefinition/daf-patient" + } + } + ] + } + ], + "global": [ + { + "type": "Patient", + "profile": { + "reference": "StructureDefinition/daf-patient" + } + } + ], + "binary": [ + "http://h7.org/fhir/fhir.css" + ], + "page": { + "source": "patient-example.html", + "title": "Example Patient Page", + "kind": "page", + "page": [ + { + "source": "list.html", + "title": "Value Set Page", + "kind": "list", + "type": [ + "ValueSet" + ], + "package": [ + "test" + ], + "format": "text/html" + } + ] + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Library.json b/data/SampleData/Stu3/Library.json new file mode 100644 index 000000000..0fa31553f --- /dev/null +++ b/data/SampleData/Stu3/Library.json @@ -0,0 +1,258 @@ +{ + "resourceType": "Library", + "id": "suiciderisk-orderset-logic", + "text": { + "status": "generated", + "div": "
\n \n \n \n \n \n \n \n
\n Id: \n
Library/mmi-suiciderisk-orderset-logic
\n \n \n \n \n \n \n \n
\n Identifier: \n
\n value: \n SuicideRiskLogic\n
\n

\n \n \n \n \n \n \n \n
\n Version: \n
1.0.0
\n

\n \n \n \n \n \n \n \n
\n Title: \n
Suicide Risk Order Set Logic
\n

\n \n \n \n \n \n \n \n
\n Type: \n
\n \n \n \n code: \n logic-library\n \n \n \n
\n

\n \n \n \n \n \n \n \n
\n Status: \n
draft
\n

\n \n \n \n \n \n \n \n
\n Description: \n
Logic for Suicide Risk Order Sets
\n

\n \n \n \n \n \n \n \n
\n Topic: \n
\n \n text: \n Suicide Risk Order Set Logic\n \n
\n

\n \n \n \n \n \n \n \n
\n Related: \n
\n

\n type: \n depends-on\n

\n

\n Resource: \n
\n \n \n reference: \n Library/library-fhir-model-definition\n \n \n

\n
\n \n \n \n \n \n \n \n
\n Related: \n
\n

\n type: \n depends-on\n

\n

\n Resource: \n
\n \n \n reference: \n Library/library-fhir-helpers\n
\n
\n \n display: \n FHIRHelpers\n \n
\n

\n
\n \n \n \n \n \n \n \n
\n Related: \n
\n

\n type: \n depends-on\n

\n

\n Resource: \n
\n \n \n reference: \n http://nucc.org/provider-taxonomy\n \n \n

\n
\n \n \n \n \n \n \n \n
\n Related: \n
\n

\n type: \n depends-on\n

\n

\n Resource: \n
\n \n \n reference: \n ValueSet/1.2.3.4.5\n
\n
\n \n display: \n Suicide Risk Assessment\n \n
\n

\n
\n \n \n \n \n \n \n \n
\n Parameter: \n
\n \n name: \n Patient\n
\n
\n use: \n in\n
\n \n minimum cardinality: \n 1\n
\n
\n \n maximum cardinality: \n 1\n
\n
\n type: \n Patient\n
\n

\n

\n \n \n \n \n \n \n \n
\n Parameter: \n
\n \n name: \n Encounter\n
\n
\n use: \n in\n
\n \n minimum cardinality: \n 1\n
\n
\n \n maximum cardinality: \n 1\n
\n
\n type: \n Encounter\n
\n

\n

\n \n \n \n \n \n \n \n
\n Parameter: \n
\n \n name: \n Practitioner\n
\n
\n use: \n in\n
\n \n minimum cardinality: \n 1\n
\n
\n \n maximum cardinality: \n 1\n
\n
\n type: \n Practitioner\n
\n

\n

\n \n \n \n \n \n \n \n
\n Data Requirements: \n
\n
\n

\n type: \n RiskAssessment\n

\n

\n code filter:\n
\n \n path: \n code\n \n
\n \n valueset: \n Suicide Risk Assessment\n \n

\n
\n
\n \n \n \n \n \n \n \n
\n Content: \n
\n

\n type: \n text/cql\n

\n

\n url: \n library-mmi-suiciderisk-orderset-logic-content.cql\n

\n
\n

" + }, + "url": "http://motivemi.com/artifacts/Library/suiciderisk-orderset-logic", + "identifier": [ + { + "use": "official", + "system": "http://motivemi.com/artifacts", + "value": "mmi:suiciderisk-orderset-logic" + } + ], + "version": "1.0.0", + "name": "SuicideRiskOrderSetLogic", + "title": "Suicide Risk Order Set Logic", + "status": "active", + "experimental": true, + "type": { + "coding": [ + { + "code": "logic-library" + } + ] + }, + "date": "2015-07-22", + "publisher": "Motive Medical Intelligence", + "description": "Logic for Suicide Risk Order Sets", + "purpose": "Defines a referral to a mental-health integrated care program for use in suicide risk order sets. The definition is independent of the order set in which it appears to allow reuse of the general definition of the referrral.", + "usage": "This activity definition is used as the definition of a referral request within various suicide risk order sets. Elements that apply universally are defined here, while elements that apply to the specific setting of a referral within a particular order set are defined in the order set.", + "approvalDate": "2016-03-12", + "lastReviewDate": "2016-08-15", + "effectivePeriod": { + "start": "2016-01-01", + "end": "2017-12-31" + }, + "useContext": [ + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "age" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "https://meshb.nlm.nih.gov", + "code": "D000328", + "display": "Adult" + } + ] + } + }, + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "focus" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "87512008", + "display": "Mild major depression" + } + ] + } + }, + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "focus" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "40379007", + "display": "Major depression, recurrent, mild" + } + ] + } + }, + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "focus" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "225444004", + "display": "At risk for suicide (finding)" + } + ] + } + }, + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "user" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "309343006", + "display": "Physician" + } + ] + } + }, + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "venue" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "440655000", + "display": "Outpatient environment" + } + ] + } + } + ], + "jurisdiction": [ + { + "coding": [ + { + "system": "urn:iso:std:iso:3166", + "code": "US" + } + ] + } + ], + "topic": [ + { + "text": "Suicide Risk Order Set Logic" + } + ], + "contributor": [ + { + "type": "author", + "name": "Motive Medical Intelligence", + "contact": [ + { + "telecom": [ + { + "system": "phone", + "value": "415-362-4007", + "use": "work" + }, + { + "system": "email", + "value": "info@motivemi.com", + "use": "work" + } + ] + } + ] + } + ], + "contact": [ + { + "telecom": [ + { + "system": "phone", + "value": "415-362-4007", + "use": "work" + }, + { + "system": "email", + "value": "info@motivemi.com", + "use": "work" + } + ] + } + ], + "copyright": "© Copyright 2016 Motive Medical Intelligence. All rights reserved.", + "relatedArtifact": [ + { + "type": "citation", + "display": "Practice Guideline for the Treatment of Patients with Major Depressive Disorder", + "url": "http://psychiatryonline.org/pb/assets/raw/sitewide/practice_guidelines/guidelines/mdd.pdf" + }, + { + "type": "depends-on", + "resource": { + "reference": "Library/library-fhir-model-definition" + } + }, + { + "type": "depends-on", + "resource": { + "reference": "Library/library-fhir-helpers", + "display": "FHIRHelpers" + } + }, + { + "type": "depends-on", + "resource": { + "reference": "http://nucc.org/provider-taxonomy" + } + }, + { + "type": "depends-on", + "resource": { + "reference": "ValueSet/1.2.3.4.5", + "display": "Suicide Risk Assessment" + } + } + ], + "parameter": [ + { + "name": "Patient", + "use": "in", + "min": 1, + "max": "1", + "type": "Patient" + }, + { + "name": "Encounter", + "use": "in", + "min": 1, + "max": "1", + "type": "Encounter" + }, + { + "name": "Practitioner", + "use": "in", + "min": 1, + "max": "1", + "type": "Practitioner" + } + ], + "dataRequirement": [ + { + "type": "RiskAssessment", + "codeFilter": [ + { + "path": "code", + "valueSetString": "Suicide Risk Assessment" + } + ] + } + ], + "content": [ + { + "contentType": "text/cql", + "url": "library-mmi-suiciderisk-orderset-logic-content.cql" + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Location.json b/data/SampleData/Stu3/Location.json new file mode 100644 index 000000000..127870d4a --- /dev/null +++ b/data/SampleData/Stu3/Location.json @@ -0,0 +1,79 @@ +{ + "resourceType": "Location", + "id": "1", + "text": { + "status": "generated", + "div": "
Burgers UMC, South Wing, second floor
" + }, + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/location-alias", + "valueString": "Burgers University Medical Center, South Wing, second floor" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/location-alias", + "valueString": "BU MC, SW, F2" + } + ], + "identifier": [ + { + "value": "B1-S.F2" + } + ], + "status": "active", + "name": "South Wing, second floor", + "description": "Second floor of the Old South Wing, formerly in use by Psychiatry", + "mode": "instance", + "telecom": [ + { + "system": "phone", + "value": "2328", + "use": "work" + }, + { + "system": "fax", + "value": "2329", + "use": "work" + }, + { + "system": "email", + "value": "second wing admissions" + }, + { + "system": "url", + "value": "http://sampleorg.com/southwing", + "use": "work" + } + ], + "address": { + "use": "work", + "line": [ + "Galapagosweg 91, Building A" + ], + "city": "Den Burg", + "postalCode": "9105 PZ", + "country": "NLD" + }, + "physicalType": { + "coding": [ + { + "system": "http://hl7.org/fhir/location-physical-type", + "code": "wi", + "display": "Wing" + } + ] + }, + "position": { + "longitude": -83.6945691, + "latitude": 42.25475478, + "altitude": 0 + }, + "managingOrganization": { + "reference": "Organization/f001" + }, + "endpoint": [ + { + "reference": "Endpoint/example" + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Measure.json b/data/SampleData/Stu3/Measure.json new file mode 100644 index 000000000..61207918d --- /dev/null +++ b/data/SampleData/Stu3/Measure.json @@ -0,0 +1,218 @@ +{ + "resourceType": "Measure", + "id": "measure-cms146-example", + "text": { + "status": "additional", + "div": "
Id:
Measure/measure-cms146-example

Identifier:
system: http://hl7.org/fhir/cqi/ecqm/Measure/Identifier/cms
value: 146
Identifier:
system: http://hl7.org/fhir/cqi/ecqm/Measure/Identifier/nqf
value: 0002

Title:
Appropriate Testing for Children with Pharyngitis

Status:
active

Description:
Percentage of children 2-18 years of age who were diagnosed with pharyngitis, ordered an antibiotic and received a group A streptococcus (strep) test for the episode.

Purpose:
The Infectious Diseases Society of America (IDSA) "recommends swabbing the throat and testing for GAS pharyngitis by rapid antigen detection test (RADT) and/or culture because the clinical features alone do not reliably discriminate between GAS and viral pharyngitis except when overt viral features like rhinorrhea, cough, oral ulcers, and/or hoarseness are present"

Topic:
system: http://hl7.org/fhir/c80-doc-typecodes
code: 57024-2

Library:
reference: Library/library-cms146-example

Scoring:
proportion

Type:
process

Group:
Identifier:
value: CMS146-group-1
Population:

type:initial-population

Identifier:
value: initial-population-identifier

criteria: CMS146.InInitialPopulation

Population:

type:numerator

Identifier:
value: numerator-identifier

criteria: CMS146.InNumerator

Population:

type:denominator

Identifier:
value: denominator-identifier

criteria: CMS146.InDenominator

Population:

type:denominator-exclusion

Identifier:
value: denominator-exclusions-identifier

criteria: CMS146.InDenominatorExclusions

Stratifier:

Identifier:
value: stratifier-ages-up-to-9

criteria: CMS146.AgesUpToNine

Stratifier:

Identifier:
value: stratifier-ages-10-plus

criteria: CMS146.AgesTenPlus

Stratifier:

Identifier:
value: stratifier-ages-up-to-9

path: Patient.gender

Supplemental Data:

Identifier:
value: supplemental-data-gender

path: Patient.gender

Supplemental Data:

Identifier:
value: supplemental-data-deceased

path: deceasedBoolean

" + }, + "url": "http://hl7.org/fhir/Measure/measure-cms146-example", + "identifier": [ + { + "use": "official", + "system": "http://hl7.org/fhir/cqi/ecqm/Measure/Identifier/cms", + "value": "146" + }, + { + "use": "official", + "system": "http://hl7.org/fhir/cqi/ecqm/Measure/Identifier/nqf", + "value": "0002" + } + ], + "version": "1.0.0", + "name": "CMS146", + "title": "Appropriate Testing for Children with Pharyngitis", + "status": "active", + "experimental": true, + "date": "2017-03-10", + "publisher": "National Committee for Quality Assurance", + "description": "Percentage of children 3-18 years of age who were diagnosed with pharyngitis, ordered an antibiotic and received a group A streptococcus (strep) test for the episode.", + "purpose": "Measure of children with a group A streptococcus test in the 7-day period from 3 days prior through 3 days after the diagnosis of pharyngitis", + "approvalDate": "2016-01-01", + "lastReviewDate": "2016-09-01", + "effectivePeriod": { + "start": "2017-01-01", + "end": "2017-12-31" + }, + "useContext": [ + { + "code": { + "code": "program" + }, + "valueCodeableConcept": { + "text": "eligibile-provider" + } + } + ], + "jurisdiction": [ + { + "coding": [ + { + "system": "urn:iso:std:iso:3166", + "code": "US" + } + ] + } + ], + "topic": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/c80-doc-typecodes", + "code": "57024-2" + } + ] + } + ], + "contributor": [ + { + "type": "author", + "name": "National Committee for Quality Assurance" + } + ], + "contact": [ + { + "telecom": [ + { + "system": "url", + "value": "http://www.ncqa.org/" + } + ] + } + ], + "copyright": "Physician Performance Measure (Measures) and related data specifications were developed by the National Committee for Quality Assurance (NCQA). The Measures are copyrighted but can be reproduced and distributed, without modification, for noncommercial purposes (eg, use by healthcare providers in connection with their practices). Commercial use is defined as the sale, licensing, or distribution of the Measures for commercial gain, or incorporation of the Measures into a product or service that is sold, licensed or distributed for commercial gain. Commercial use of the Measures requires a license agreement between the user and NCQA. NCQA is not responsible for any use of the Measures. (c) 2008-2016 National Committee for Quality Assurance. All Rights Reserved. Limited proprietary coding is contained in the Measure specifications for user convenience. Users of proprietary code sets should obtain all necessary licenses from the owners of the code sets. NCQA disclaims all liability for use or accuracy of any CPT or other codes contained in the specifications. CPT(R) contained in the Measure specifications is copyright 2004-2015 American Medical Association. LOINC(R) copyright 2004-2015 Regenstrief Institute, Inc. This material contains SNOMED Clinical Terms(R) (SNOMED CT[R]) copyright 2004-2015 International Health Terminology Standards Development Organisation. ICD-10 copyright 2015 World Health Organization. All Rights Reserved.", + "relatedArtifact": [ + { + "type": "documentation", + "citation": "Linder, J.A., D.W. Bates, G.M. Lee, J.A. Finkelstein. 2005. \"Antibiotic treatment of children with sore throat.\" JAMA 294(18):2315-2322. " + }, + { + "type": "documentation", + "citation": "Infectious Diseases Society of America. 2012. \"Clinical Practice Guideline for the Diagnosis and Management of Group A Streptococcal Pharyngitis: 2012 Update.\" " + }, + { + "type": "documentation", + "citation": "Roberts, R.R., B. Hota, I. Ahmad, et al. \"Hospital and Societal Costs of Antimicrobial-Resistant Infections in a Chicago Teaching Hospital: Implications for Antibiotic Stewardship.\" Clin Infect Dis. Oct 2009; 49(8):1175-84." + } + ], + "library": [ + { + "reference": "Library/library-cms146-example" + } + ], + "disclaimer": "These performance Measures are not clinical guidelines and do not establish a standard of medical care, and have not been tested for all potential applications. THE MEASURES AND SPECIFICATIONS ARE PROVIDED \"AS IS\" WITHOUT WARRANTY OF ANY KIND. Due to technical limitations, registered trademarks are indicated by (R) or [R] and unregistered trademarks are indicated by (TM) or [TM].", + "scoring": { + "coding": [ + { + "code": "proportion" + } + ] + }, + "type": [ + { + "coding": [ + { + "code": "process" + } + ] + } + ], + "rationale": "Group A streptococcal bacterial infections and other infections that cause pharyngitis (which are most often viral) often produce the same signs and symptoms (IDSA 2002). The American Academy of Pediatrics, the Centers for Disease Control and Prevention, and the Infectious Diseases Society of America all recommend a diagnostic test for Strep A to improve diagnostic accuracy and avoid unnecessary antibiotic treatment (Linder et al. 2005). Estimated economic costs of pediatric streptococcal pharyngitis in the United States range from $224 million to $539 million per year, including indirect costs related to parental work losses. At a higher level, the economic cost of antibiotic resistance vary but have extended as high as $20 billion in excess direct healthcare costs, with additional costs to society for lost productivity as high as $35 billion a year (2008 dollars) (Roberts et al. 2009).", + "clinicalRecommendationStatement": "The Infectious Diseases Society of America (IDSA) \"recommends swabbing the throat and testing for GAS pharyngitis by rapid antigen detection test (RADT) and/or culture because the clinical features alone do not reliably discriminate between GAS and viral pharyngitis except when overt viral features like rhinorrhea, cough, oral ulcers, and/or hoarseness are present\"", + "improvementNotation": "Higher score indicates better quality", + "guidance": "This is an episode of care measure that examines all eligible episodes for the patient during the measurement period. If the patient has more than one episode, include all episodes in the measure", + "group": [ + { + "identifier": { + "value": "CMS146-group-1" + }, + "population": [ + { + "identifier": { + "value": "initial-population-identifier" + }, + "code": { + "coding": [ + { + "code": "initial-population" + } + ] + }, + "criteria": "CMS146.InInitialPopulation" + }, + { + "identifier": { + "value": "numerator-identifier" + }, + "code": { + "coding": [ + { + "code": "numerator" + } + ] + }, + "criteria": "CMS146.InNumerator" + }, + { + "identifier": { + "value": "denominator-identifier" + }, + "code": { + "coding": [ + { + "code": "denominator" + } + ] + }, + "criteria": "CMS146.InDenominator" + }, + { + "identifier": { + "value": "denominator-exclusions-identifier" + }, + "code": { + "coding": [ + { + "code": "denominator-exclusion" + } + ] + }, + "criteria": "CMS146.InDenominatorExclusions" + } + ], + "stratifier": [ + { + "identifier": { + "value": "stratifier-ages-up-to-9" + }, + "criteria": "CMS146.AgesUpToNine" + }, + { + "identifier": { + "value": "stratifier-ages-10-plus" + }, + "criteria": "CMS146.AgesTenPlus" + }, + { + "identifier": { + "value": "stratifier-ages-up-to-9" + }, + "path": "Patient.gender" + } + ] + } + ], + "supplementalData": [ + { + "identifier": { + "value": "supplemental-data-gender" + }, + "path": "Patient.gender" + }, + { + "identifier": { + "value": "supplemental-data-deceased" + }, + "path": "deceasedBoolean" + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/MeasureReport.json b/data/SampleData/Stu3/MeasureReport.json new file mode 100644 index 000000000..e81ad57dc --- /dev/null +++ b/data/SampleData/Stu3/MeasureReport.json @@ -0,0 +1,455 @@ +{ + "resourceType": "MeasureReport", + "id": "measurereport-cms146-cat3-example", + "text": { + "status": "generated", + "div": "
\n \n \n \n \n \n \n \n
\n Id: \n
MeasureReport/measurereport-cms146-cat3-example
\n

\n \n \n \n \n \n \n \n
\n Measure: \n
\n \n reference: \n Measure/CMS146\n
\n
\n
\n

\n \n \n \n \n \n \n \n
\n Type: \n
summary
\n

\n \n \n \n \n \n \n \n \n \n \n
\n Period: \n
\n start: \n Wed Jan 01 00:00:00 MST 2014\n
\n end: \n Mon Mar 31 00:00:00 MDT 2014\n
\n

\n \n \n \n \n \n \n \n
\n Status: \n
complete
\n

\n \n \n \n \n \n \n \n
\n Reporting Organization: \n
\n

\n \n name: \n Good Health Hospital\n \n

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Group:\n
\n

\n value: \n CMS146-group-1\n

\n
\n Population:\n

\n type: \n initial-population\n

\n

\n count: \n 500\n

\n
\n Population:\n

\n type: \n numerator\n

\n

\n count: \n 200\n

\n
\n Population:\n

\n type: \n denominator\n

\n

\n count: \n 500\n

\n
\n Population:\n

\n type: \n denominator-exclusion\n

\n

\n count: \n 100\n

\n
\n Stratifier:\n

\n \n value: \n CMS146-group-1\n \n

\n

\n Group:\n
\n \n value: \n \n true\n
\n \n \n Population:\n \n
\n \n type: \n \n initial-population\n \n
\n \n count: \n \n 250\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n numerator\n \n
\n \n count: \n \n 100\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n denominator\n \n
\n \n count: \n \n 250\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n denominator-exclusion\n \n
\n \n count: \n \n 50\n
\n
\n
\n

\n

\n Group:\n
\n \n value: \n \n false\n
\n \n \n Population:\n \n
\n \n type: \n \n initial-population\n \n
\n \n count: \n \n 250\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n numerator\n \n
\n \n count: \n \n 100\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n denominator\n \n
\n \n count: \n \n 250\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n denominator-exclusion\n \n
\n \n count: \n \n 50\n
\n
\n
\n

\n
\n Stratifier:\n

\n \n value: \n CMS146-group-1\n \n

\n

\n Group:\n
\n \n value: \n \n true\n
\n \n \n Population:\n \n
\n \n type: \n \n initial-population\n \n
\n \n count: \n \n 250\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n numerator\n \n
\n \n count: \n \n 100\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n denominator\n \n
\n \n count: \n \n 250\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n denominator-exclusion\n \n
\n \n count: \n \n 50\n
\n
\n
\n

\n

\n Group:\n
\n \n value: \n \n false\n
\n \n \n Population:\n \n
\n \n type: \n \n initial-population\n \n
\n \n count: \n \n 250\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n numerator\n \n
\n \n count: \n \n 100\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n denominator\n \n
\n \n count: \n \n 250\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n denominator-exclusion\n \n
\n \n count: \n \n 50\n
\n
\n
\n

\n
\n Stratifier:\n

\n \n value: \n CMS146-group-1\n \n

\n

\n Group:\n
\n \n value: \n \n male\n
\n \n \n Population:\n \n
\n \n type: \n \n initial-population\n \n
\n \n count: \n \n 250\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n numerator\n \n
\n \n count: \n \n 100\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n denominator\n \n
\n \n count: \n \n 250\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n denominator-exclusion\n \n
\n \n count: \n \n 50\n
\n
\n
\n

\n

\n Group:\n
\n \n value: \n \n female\n
\n \n \n Population:\n \n
\n \n type: \n \n initial-population\n \n
\n \n count: \n \n 250\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n numerator\n \n
\n \n count: \n \n 100\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n denominator\n \n
\n \n count: \n \n 250\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n denominator-exclusion\n \n
\n \n count: \n \n 50\n
\n
\n
\n

\n

\n Group:\n
\n \n value: \n \n other\n
\n \n \n Population:\n \n
\n \n type: \n \n initial-population\n \n
\n \n count: \n \n 0\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n numerator\n \n
\n \n count: \n \n 0\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n denominator\n \n
\n \n count: \n \n 0\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n denominator-exclusion\n \n
\n \n count: \n \n 0\n
\n
\n
\n

\n

\n Group:\n
\n \n value: \n \n unknown\n
\n \n \n Population:\n \n
\n \n type: \n \n initial-population\n \n
\n \n count: \n \n 0\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n numerator\n \n
\n \n count: \n \n 0\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n denominator\n \n
\n \n count: \n \n 0\n
\n
\n
\n \n \n Population:\n \n
\n \n type: \n \n denominator-exclusion\n \n
\n \n count: \n \n 0\n
\n
\n
\n

\n
\n Supplemental:\n

\n \n value: \n supplemental-data-gender\n \n

\n

\n Group:\n
\n \n value: \n \n male\n \n
\n \n count: \n \n 250\n
\n

\n

\n Group:\n
\n \n value: \n \n female\n \n
\n \n count: \n \n 250\n
\n

\n

\n Group:\n
\n \n value: \n \n other\n \n
\n \n count: \n \n 0\n
\n

\n

\n Group:\n
\n \n value: \n \n unknown\n \n
\n \n count: \n \n 0\n
\n

\n
\n Supplemental:\n

\n \n value: \n supplemental-data-deceased\n \n

\n

\n Group:\n
\n \n value: \n \n true\n \n
\n \n count: \n \n 0\n
\n

\n

\n Group:\n
\n \n value: \n \n false\n \n
\n \n count: \n \n 500\n
\n

\n
\n

" + }, + "identifier": { + "value": "measurereport-cms146-cat3-example-2017-03-13" + }, + "status": "complete", + "type": "patient-list", + "measure": { + "reference": "Measure/CMS146" + }, + "reportingOrganization": { + "reference": "#reporter" + }, + "period": { + "start": "2014-01-01", + "end": "2014-03-31" + }, + "group": [ + { + "identifier": { + "value": "CMS146-group-1" + }, + "population": [ + { + "code": { + "coding": [ + { + "code": "initial-population" + } + ] + }, + "count": 500 + }, + { + "code": { + "coding": [ + { + "code": "numerator" + } + ] + }, + "count": 200 + }, + { + "code": { + "coding": [ + { + "code": "denominator" + } + ] + }, + "count": 500 + }, + { + "code": { + "coding": [ + { + "code": "denominator-exclusion" + } + ] + }, + "count": 100 + } + ], + "stratifier": [ + { + "identifier": { + "value": "stratifier-ages-up-to-9" + }, + "stratum": [ + { + "value": "true", + "population": [ + { + "code": { + "coding": [ + { + "code": "initial-population" + } + ] + }, + "count": 250 + }, + { + "code": { + "coding": [ + { + "code": "numerator" + } + ] + }, + "count": 100 + }, + { + "code": { + "coding": [ + { + "code": "denominator" + } + ] + }, + "count": 250 + }, + { + "code": { + "coding": [ + { + "code": "denominator-exclusion" + } + ] + }, + "count": 50 + } + ] + }, + { + "value": "false", + "population": [ + { + "code": { + "coding": [ + { + "code": "initial-population" + } + ] + }, + "count": 250 + }, + { + "code": { + "coding": [ + { + "code": "numerator" + } + ] + }, + "count": 100 + }, + { + "code": { + "coding": [ + { + "code": "denominator" + } + ] + }, + "count": 250 + }, + { + "code": { + "coding": [ + { + "code": "denominator-exclusion" + } + ] + }, + "count": 50 + } + ] + } + ] + }, + { + "identifier": { + "value": "stratifier-ages-10-plus" + }, + "stratum": [ + { + "value": "true", + "population": [ + { + "code": { + "coding": [ + { + "code": "initial-population" + } + ] + }, + "count": 250 + }, + { + "code": { + "coding": [ + { + "code": "numerator" + } + ] + }, + "count": 100 + }, + { + "code": { + "coding": [ + { + "code": "denominator" + } + ] + }, + "count": 250 + }, + { + "code": { + "coding": [ + { + "code": "denominator-exclusion" + } + ] + }, + "count": 50 + } + ] + }, + { + "value": "false", + "population": [ + { + "code": { + "coding": [ + { + "code": "initial-population" + } + ] + }, + "count": 250 + }, + { + "code": { + "coding": [ + { + "code": "numerator" + } + ] + }, + "count": 100 + }, + { + "code": { + "coding": [ + { + "code": "denominator" + } + ] + }, + "count": 250 + }, + { + "code": { + "coding": [ + { + "code": "denominator-exclusion" + } + ] + }, + "count": 50 + } + ] + } + ] + }, + { + "identifier": { + "value": "stratifier-gender" + }, + "stratum": [ + { + "value": "male", + "population": [ + { + "code": { + "coding": [ + { + "code": "initial-population" + } + ] + }, + "count": 250 + }, + { + "code": { + "coding": [ + { + "code": "numerator" + } + ] + }, + "count": 100 + }, + { + "code": { + "coding": [ + { + "code": "denominator" + } + ] + }, + "count": 250 + }, + { + "code": { + "coding": [ + { + "code": "denominator-exclusion" + } + ] + }, + "count": 50 + } + ] + }, + { + "value": "female", + "population": [ + { + "code": { + "coding": [ + { + "code": "initial-population" + } + ] + }, + "count": 250 + }, + { + "code": { + "coding": [ + { + "code": "numerator" + } + ] + }, + "count": 100 + }, + { + "code": { + "coding": [ + { + "code": "denominator" + } + ] + }, + "count": 250 + }, + { + "code": { + "coding": [ + { + "code": "denominator-exclusion" + } + ] + }, + "count": 50 + } + ] + }, + { + "value": "other", + "population": [ + { + "code": { + "coding": [ + { + "code": "initial-population" + } + ] + }, + "count": 0 + }, + { + "code": { + "coding": [ + { + "code": "numerator" + } + ] + }, + "count": 0 + }, + { + "code": { + "coding": [ + { + "code": "denominator" + } + ] + }, + "count": 0 + }, + { + "code": { + "coding": [ + { + "code": "denominator-exclusion" + } + ] + }, + "count": 0 + } + ] + }, + { + "value": "unknown", + "population": [ + { + "code": { + "coding": [ + { + "code": "initial-population" + } + ] + }, + "count": 0 + }, + { + "code": { + "coding": [ + { + "code": "numerator" + } + ] + }, + "count": 0 + }, + { + "code": { + "coding": [ + { + "code": "denominator" + } + ] + }, + "count": 0 + }, + { + "code": { + "coding": [ + { + "code": "denominator-exclusion" + } + ] + }, + "count": 0 + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Media.json b/data/SampleData/Stu3/Media.json new file mode 100644 index 000000000..ff48e4086 --- /dev/null +++ b/data/SampleData/Stu3/Media.json @@ -0,0 +1,53 @@ +{ + "resourceType": "Media", + "id": "xray", + "text": { + "status": "generated", + "div": "
Xray of left hand for Patient Henry Levin (MRN 12345) 2016-03-15
" + }, + "basedOn": [ + { + "identifier": { + "system": "http://someclinic.org/fhir/NamingSystem/imaging-orders", + "value": "111222", + "assigner": { + "display": "XYZ Medical Clinic" + } + } + } + ], + "type": "photo", + "subtype": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39714003", + "display": "Skeletal X-ray of wrist and hand" + } + ] + }, + "subject": { + "reference": "Patient/example" + }, + "context": { + "reference": "Encounter/example" + }, + "occurrenceDateTime": "2016-03-15", + "bodySite": { + "coding": [ + { + "system": "http://snomed.info.sct", + "code": "85151006", + "display": "Structure of left hand (body structure)" + } + ] + }, + "height": 432, + "width": 640, + "content": { + "id": "a1", + "contentType": "image/jpeg", + "url": "http://someimagingcenter.org/fhir/Binary/A12345", + "creation": "2016-03-15" + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Medication.json b/data/SampleData/Stu3/Medication.json new file mode 100644 index 000000000..2388bf2ce --- /dev/null +++ b/data/SampleData/Stu3/Medication.json @@ -0,0 +1,97 @@ +{ + "resourceType": "Medication", + "id": "med0303", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: med0303

contained:

code: Alemtuzumab 10mg/ml (Lemtrada) (Details : {RxNorm code '1594660' = '1594660', given as 'Alemtuzumab 10mg/ml (Lemtrada)'})

isBrand: true

manufacturer: id: org6; name: Genzyme

form: Injection solution (qualifier vallue) (Details : {SNOMED CT code '385219001' = 'Injection solution', given as 'Injection solution (qualifier vallue)'})

Ingredients

-Item[x]Amount
*Alemtuzamab (substance) (Details : {SNOMED CT code '129472003' = 'Alemtuzumab', given as 'Alemtuzamab (substance)'})12 mg (Details: UCUM code mg = 'mg')/1.2 mL (Details: UCUM code mL = 'mL')

package

container: Vial (Details : {SNOMED CT code '415818006' = 'Vial', given as 'Vial'})

Contents

-Item[x]Amount
*Alemtuzumab 30mg/3mL infusion concentrate (product) (Details : {SNOMED CT code '408596005' = 'Alemtuzumab 30mg/3mL infusion concentrate', given as 'Alemtuzumab 30mg/3mL infusion concentrate (product)'})3 mL (Details: UCUM code mL = 'mL')

Batches

-LotNumberExpirationDate
*949478822/05/2017
" + }, + "contained": [ + { + "resourceType": "Organization", + "id": "org6", + "name": "Genzyme" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1594660", + "display": "Alemtuzumab 10mg/ml (Lemtrada)" + } + ] + }, + "isBrand": true, + "manufacturer": { + "reference": "#org6" + }, + "form": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "385219001", + "display": "Injection solution (qualifier vallue)" + } + ] + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "129472003", + "display": "Alemtuzamab (substance)" + } + ] + }, + "amount": { + "numerator": { + "value": 12, + "system": "http://unitsofmeasure.org", + "code": "mg" + }, + "denominator": { + "value": 1.2, + "system": "http://unitsofmeasure.org", + "code": "mL" + } + } + } + ], + "package": { + "container": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "415818006", + "display": "Vial" + } + ] + }, + "content": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "408596005", + "display": "Alemtuzumab 30mg/3mL infusion concentrate (product)" + } + ] + }, + "amount": { + "value": 3, + "system": "http://unitsofmeasure.org", + "code": "mL" + } + } + ], + "batch": [ + { + "lotNumber": "9494788", + "expirationDate": "2017-05-22" + } + ] + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/MedicationAdministration.json b/data/SampleData/Stu3/MedicationAdministration.json new file mode 100644 index 000000000..dd11462ca --- /dev/null +++ b/data/SampleData/Stu3/MedicationAdministration.json @@ -0,0 +1,72 @@ +{ + "resourceType": "MedicationAdministration", + "id": "medadmin0301", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: medadmin0301

contained: ,

status: in-progress

medication: id: med0301; Vancomycin Hydrochloride (VANCOMYCIN HYDROCHLORIDE) (Details : {http://hl7.org/fhir/sid/ndc code '0069-2587-10' = '0069-2587-10', given as 'Vancomycin Hydrochloride (VANCOMYCIN HYDROCHLORIDE)'})

subject: Donald Duck

context: encounter who leads to this prescription

effective: 15/01/2015 2:30:00 PM --> (ongoing)

Performers

-Actor
*Patrick Pump

reasonCode: Given as Ordered (Details : {http://hl7.org/fhir/reason-medication-given code 'b' = 'Given as Ordered', given as 'Given as Ordered'})

prescription: MedicationRequest/medrx0318

Dosages

-TextRouteMethodDose
*500mg IV q6h x 3 daysIntravenous route (qualifier value) (Details : {SNOMED CT code '47625008' = 'Intravenous route', given as 'Intravenous route (qualifier value)'})IV Push (Details )500 mg (Details: UCUM code mg = 'mg')

eventHistory: Author's Signature. Generated Summary: id: signature; recorded: 01/02/2017 5:23:07 PM;

" + }, + "status": "in-progress", + "medicationReference": { + "reference": "#med0301" + }, + "subject": { + "reference": "Patient/pat1", + "display": "Donald Duck" + }, + "context": { + "reference": "Encounter/f001", + "display": "encounter who leads to this prescription" + }, + "effectivePeriod": { + "start": "2015-01-15T14:30:00+01:00" + }, + "performer": [ + { + "actor": { + "reference": "Practitioner/f007", + "display": "Patrick Pump" + } + } + ], + "reasonCode": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/reason-medication-given", + "code": "b", + "display": "Given as Ordered" + } + ] + } + ], + "prescription": { + "reference": "MedicationRequest/medrx0318" + }, + "dosage": { + "text": "500mg IV q6h x 3 days", + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "47625008", + "display": "Intravenous route (qualifier value)" + } + ] + }, + "method": { + "text": "IV Push" + }, + "dose": { + "value": 500, + "unit": "mg", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + }, + "eventHistory": [ + { + "reference": "#signature", + "display": "Author's Signature" + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/MedicationDispense.json b/data/SampleData/Stu3/MedicationDispense.json new file mode 100644 index 000000000..1b0e3c322 --- /dev/null +++ b/data/SampleData/Stu3/MedicationDispense.json @@ -0,0 +1,130 @@ +{ + "resourceType": "MedicationDispense", + "id": "meddisp0303", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: meddisp0303

contained:

partOf: Procedure/biopsy

status: on-hold

category: Outpatient (Details : {http://hl7.org/fhir/medication-dispense-category code 'outpatient' = 'Outpatient', given as 'Outpatient'})

medication: id: med0310; Oxycodone Hydrochloride 5mg oral tablet (Roxicodone (Details : {RxNorm code '1049623' = '1049623', given as 'Oxycodone Hydrochloride 5mg oral tablet (Roxicodone'})

subject: Donald Duck

context: Encounter/f001

Performers

-ActorOnBehalfOf
*Practitioner/f006Organization/2.16.840.1.113883.19.5

authorizingPrescription: MedicationRequest/medrx0310

type: Emergency Supply (Details : {http://hl7.org/fhir/v3/ActCode code 'EM' = 'Emergency Supply', given as 'Emergency Supply'})

quantity: 30 TAB (Details: http://hl7.org/fhir/v3/orderableDrugForm code TAB = 'Tablet')

daysSupply: 10 Day (Details: UCUM code d = 'd')

whenPrepared: 15/04/2016 7:14:00 AM

dosageInstruction:

detectedIssue: DetectedIssue/allergy

notDone: true

notDoneReason: DetectedIssue/allergy

" + }, + "partOf": [ + { + "reference": "Procedure/biopsy" + } + ], + "status": "on-hold", + "category": { + "coding": [ + { + "system": "http://hl7.org/fhir/medication-dispense-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + }, + "medicationReference": { + "reference": "#med0310" + }, + "subject": { + "reference": "Patient/pat1", + "display": "Donald Duck" + }, + "context": { + "reference": "Encounter/f001" + }, + "performer": [ + { + "actor": { + "reference": "Practitioner/f006" + }, + "onBehalfOf": { + "reference": "Organization/2.16.840.1.113883.19.5" + } + } + ], + "authorizingPrescription": [ + { + "reference": "MedicationRequest/medrx0310" + } + ], + "type": { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/ActCode", + "code": "EM", + "display": "Emergency Supply" + } + ] + }, + "quantity": { + "value": 30, + "system": "http://hl7.org/fhir/v3/orderableDrugForm", + "code": "TAB" + }, + "daysSupply": { + "value": 10, + "unit": "Day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "whenPrepared": "2016-04-15T07:14:00+05:00", + "dosageInstruction": [ + { + "sequence": 1, + "text": "one to two tablets every 4-6 hours as needed for rib pain", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "418914006", + "display": "Warning. May cause drowsiness. If affected do not drive or operate machinery. Avoid alcoholic drink (qualifier value)" + } + ] + } + ], + "timing": { + "repeat": { + "frequency": 1, + "period": 4, + "periodMax": 6, + "periodUnit": "h" + } + }, + "asNeededCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "297217002", + "display": "Rib Pain (finding)" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral Route" + } + ] + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421521009", + "display": "Swallow - dosing instruction imperative (qualifier value)" + } + ] + } + } + ], + "detectedIssue": [ + { + "reference": "DetectedIssue/allergy" + } + ], + "notDone": true, + "notDoneReasonReference": { + "reference": "DetectedIssue/allergy" + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/MedicationRequest.json b/data/SampleData/Stu3/MedicationRequest.json new file mode 100644 index 000000000..c9c284d39 --- /dev/null +++ b/data/SampleData/Stu3/MedicationRequest.json @@ -0,0 +1,185 @@ +{ + "resourceType": "MedicationRequest", + "id": "medrx0302", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: medrx0302

contained:

identifier: 12345689 (OFFICIAL)

status: active

intent: order

medication: id: med0320; Azithromycin 250mg capsule (product) (Details : {SNOMED CT code '324252006' = 'Azithromycin 250mg capsule', given as 'Azithromycin 250mg capsule (product)'})

subject: Donald Duck

context: encounter who leads to this prescription

authoredOn: 15/01/2015

Requesters

-AgentOnBehalfOf
*Patrick PumpOrganization/f002

reasonCode: Traveller's Diarrhea (disorder) (Details : {SNOMED CT code '11840006' = 'Traveler's diarrhea', given as 'Traveller's Diarrhea (disorder)'})

note: Patient told to take with food

dosageInstruction: ,

DispenseRequests

-ValidityPeriodNumberOfRepeatsAllowedQuantityExpectedSupplyDuration
*15/01/2015 --> 15/01/201616 TAB (Details: http://hl7.org/fhir/v3/orderableDrugForm code TAB = 'Tablet')5 days (Details: UCUM code d = 'd')

Substitutions

-AllowedReason
*trueformulary policy (Details : {http://hl7.org/fhir/v3/ActReason code 'FP' = 'formulary policy', given as 'formulary policy'})
" + }, + "contained": [ + { + "resourceType": "Medication", + "id": "med0320", + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsule (product)" + } + ] + } + } + ], + "identifier": [ + { + "use": "official", + "system": "http://www.bmc.nl/portal/prescriptions", + "value": "12345689" + } + ], + "status": "active", + "intent": "order", + "medicationReference": { + "reference": "#med0320" + }, + "subject": { + "reference": "Patient/pat1", + "display": "Donald Duck" + }, + "context": { + "reference": "Encounter/f001", + "display": "encounter who leads to this prescription" + }, + "authoredOn": "2015-01-15", + "requester": { + "agent": { + "reference": "Practitioner/f007", + "display": "Patrick Pump" + }, + "onBehalfOf": { + "reference": "Organization/f002" + } + }, + "reasonCode": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "11840006", + "display": "Traveller's Diarrhea (disorder)" + } + ] + } + ], + "note": [ + { + "text": "Patient told to take with food" + } + ], + "dosageInstruction": [ + { + "sequence": 1, + "text": "Two tablets at once", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "311504000", + "display": "With or after food" + } + ] + } + ], + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral Route" + } + ] + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421521009", + "display": "Swallow - dosing instruction imperative (qualifier value)" + } + ] + }, + "doseQuantity": { + "value": 2, + "unit": "TAB", + "system": "http://hl7.org/fhir/v3/orderableDrugForm", + "code": "TAB" + } + }, + { + "sequence": 2, + "text": "One tablet daily for 4 days", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "311504000", + "display": "With or after food" + } + ] + } + ], + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral Route" + } + ] + }, + "doseQuantity": { + "value": 1, + "unit": "TAB", + "system": "http://hl7.org/fhir/v3/orderableDrugForm", + "code": "TAB" + } + } + ], + "dispenseRequest": { + "validityPeriod": { + "start": "2015-01-15", + "end": "2016-01-15" + }, + "numberOfRepeatsAllowed": 1, + "quantity": { + "value": 6, + "unit": "TAB", + "system": "http://hl7.org/fhir/v3/orderableDrugForm", + "code": "TAB" + }, + "expectedSupplyDuration": { + "value": 5, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + } + }, + "substitution": { + "allowed": true, + "reason": { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/ActReason", + "code": "FP", + "display": "formulary policy" + } + ] + } + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/MedicationStatement.json b/data/SampleData/Stu3/MedicationStatement.json new file mode 100644 index 000000000..ad1518b35 --- /dev/null +++ b/data/SampleData/Stu3/MedicationStatement.json @@ -0,0 +1,110 @@ +{ + "resourceType": "MedicationStatement", + "id": "example001", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example001

contained:

identifier: 12345689 (OFFICIAL)

status: active

category: Inpatient (Details : {http://hl7.org/fhir/medication-statement-category code 'inpatient' = 'Inpatient', given as 'Inpatient'})

medication: id: med0309; Tylenol PM (Details : {http://hl7.org/fhir/sid/ndc code '50580-506-02' = '50580-506-02', given as 'Tylenol PM'}); isBrand; Film-coated tablet (qualifier value) (Details : {SNOMED CT code '385057009' = 'Film-coated tablet', given as 'Film-coated tablet (qualifier value)'})

effective: 23/01/2015

dateAsserted: 22/02/2015

informationSource: Donald Duck

subject: Donald Duck

derivedFrom: MedicationRequest/medrx002

taken: n

reasonCode: Restless Legs (Details : {SNOMED CT code '32914008' = 'Restless legs', given as 'Restless Legs'})

note: Patient indicates they miss the occasional dose

dosage:

" + }, + "identifier": [ + { + "use": "official", + "system": "http://www.bmc.nl/portal/medstatements", + "value": "12345689" + } + ], + "status": "active", + "category": { + "coding": [ + { + "system": "http://hl7.org/fhir/medication-statement-category", + "code": "inpatient", + "display": "Inpatient" + } + ] + }, + "medicationReference": { + "reference": "#med0309" + }, + "effectiveDateTime": "2015-01-23", + "dateAsserted": "2015-02-22", + "informationSource": { + "reference": "Patient/pat1", + "display": "Donald Duck" + }, + "subject": { + "reference": "Patient/pat1", + "display": "Donald Duck" + }, + "derivedFrom": [ + { + "reference": "MedicationRequest/medrx002" + } + ], + "taken": "n", + "reasonCode": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "32914008", + "display": "Restless Legs" + } + ] + } + ], + "note": [ + { + "text": "Patient indicates they miss the occasional dose" + } + ], + "dosage": [ + { + "sequence": 1, + "text": "1-2 tablets once daily at bedtime as needed for restless legs", + "additionalInstruction": [ + { + "text": "Taking at bedtime" + } + ], + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "asNeededCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "32914008", + "display": "Restless Legs" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral Route" + } + ] + }, + "doseRange": { + "low": { + "value": 1, + "unit": "TAB", + "system": "http://hl7.org/fhir/v3/orderableDrugForm", + "code": "TAB" + }, + "high": { + "value": 2, + "unit": "TAB", + "system": "http://hl7.org/fhir/v3/orderableDrugForm", + "code": "TAB" + } + } + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/MessageDefinition.json b/data/SampleData/Stu3/MessageDefinition.json new file mode 100644 index 000000000..75107cde6 --- /dev/null +++ b/data/SampleData/Stu3/MessageDefinition.json @@ -0,0 +1,97 @@ +{ + "resourceType": "MessageDefinition", + "id": "patient-link-notification", + "text": { + "status": "generated", + "div": "
Link Patients Notification
" + }, + "url": "http://hl7.org/fhir/MessageDefinition/patient-link-notification", + "identifier": { + "system": "urn:ietf:rfc:3986", + "value": "urn:oid:1.3.6.1.4.1.21367.2005.3.7.9878" + }, + "version": "1", + "name": "PATIENT-LINK-NOTIFICATION", + "title": "Link Patients Notification", + "status": "draft", + "experimental": true, + "date": "2017-02-03", + "publisher": "Health Level Seven, Int'l", + "contact": [ + { + "telecom": [ + { + "system": "url", + "value": "http://hl7.org" + } + ] + } + ], + "description": "Notification of two patient records that represent the same individual that require an established linkage.", + "useContext": [ + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "focus" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/variant-state", + "code": "positive" + } + ] + } + } + ], + "jurisdiction": [ + { + "coding": [ + { + "system": "urn:iso:std:iso:3166", + "code": "US", + "display": "United States of America (the)" + } + ] + } + ], + "category": "Notification", + "purpose": "Notifies recipient systems that two patients have been 'linked' - meaning they represent the same individual", + "copyright": "� HL7.org 2011+", + "base": { + "reference": "MessageDefinition/example" + }, + "parent": [ + { + "reference": "ActivityDefinition/example" + } + ], + "replaces": [ + { + "reference": "MessageDefinition/example" + } + ], + "event": { + "system": "http://hl7.org/fhir/message-events", + "code": "patient-link" + }, + "focus": [ + { + "code": "Patient", + "profile": { + "reference": "StructureDefinition/example" + }, + "min": 2, + "max": "2" + } + ], + "responseRequired": false, + "allowedResponse": [ + { + "message": { + "reference": "MessageDefinition/patient-link-response" + }, + "situation": "Optional response message that may provide additional information" + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/MessageHeader.json b/data/SampleData/Stu3/MessageHeader.json new file mode 100644 index 000000000..1a704202d --- /dev/null +++ b/data/SampleData/Stu3/MessageHeader.json @@ -0,0 +1,61 @@ +{ + "resourceType": "MessageHeader", + "id": "1cbdfb97-5859-48a4-8301-d54eab818d68", + "text": { + "status": "generated", + "div": "
\n

Update Person resource for Peter James CHALMERS (Jim), MRN: 12345 (Acme Healthcare)

\n
" + }, + "event": { + "system": "http://hl7.org/fhir/message-events", + "code": "admin-notify" + }, + "destination": [ + { + "name": "Acme Message Gateway", + "target": { + "reference": "Device/example" + }, + "endpoint": "llp:10.11.12.14:5432" + } + ], + "receiver": { + "reference": "http://acme.com/ehr/fhir/Practitioner/2323-33-4" + }, + "sender": { + "reference": "Organization/1" + }, + "timestamp": "2012-01-04T09:10:14Z", + "enterer": { + "reference": "Practitioner/example" + }, + "author": { + "reference": "Practitioner/example" + }, + "source": { + "name": "Acme Central Patient Registry", + "software": "FooBar Patient Manager", + "version": "3.1.45.AABB", + "contact": { + "system": "phone", + "value": "+1 (555) 123 4567" + }, + "endpoint": "llp:10.11.12.13:5432" + }, + "reason": { + "coding": [ + { + "system": "http://hl7.org/fhir/message-reasons-encounter", + "code": "admit" + } + ] + }, + "response": { + "identifier": "5015fe84-8e76-4526-89d8-44b322e8d4fb", + "code": "ok" + }, + "focus": [ + { + "reference": "Patient/example" + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/NamingSystem.json b/data/SampleData/Stu3/NamingSystem.json new file mode 100644 index 000000000..bab28f618 --- /dev/null +++ b/data/SampleData/Stu3/NamingSystem.json @@ -0,0 +1,62 @@ +{ + "resourceType": "NamingSystem", + "id": "example-id", + "text": { + "status": "generated", + "div": "
\n

\n Australian IHI Number\n

\n \n

oid: 1.2.36.1.2001.1003.0

\n \n

uri: http://ns.electronichealth.net.au/id/hi/ihi/1.0

\n \n
" + }, + "name": "Austalian Healthcare Identifier - Individual", + "status": "active", + "kind": "identifier", + "date": "2015-08-31", + "publisher": "HL7 Australia on behalf of NEHTA", + "contact": [ + { + "name": "HL7 Australia FHIR Team", + "telecom": [ + { + "system": "url", + "value": "http://hl7-australia.wikispaces.com/FHIR+Australia" + } + ] + } + ], + "responsible": "HI Service Operator / NEHTA", + "type": { + "coding": [ + { + "system": "http://hl7.org/fhir/v2/0203", + "code": "NI", + "display": "National unique individual identifier" + } + ], + "text": "IHI" + }, + "description": "Australian HI Identifier as established by relevant regulations etc", + "jurisdiction": [ + { + "coding": [ + { + "system": "urn:iso:std:iso:3166", + "code": "AU" + } + ] + } + ], + "usage": "Used in Australia for identifying patients", + "uniqueId": [ + { + "type": "oid", + "value": "1.2.36.1.2001.1003.0", + "comment": "This value is used in Australian CDA documents" + }, + { + "type": "uri", + "value": "http://ns.electronichealth.net.au/id/hi/ihi/1.0", + "preferred": true, + "period": { + "start": "2015-08-21" + } + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/NutritionOrder.json b/data/SampleData/Stu3/NutritionOrder.json new file mode 100644 index 000000000..bcc97ce26 --- /dev/null +++ b/data/SampleData/Stu3/NutritionOrder.json @@ -0,0 +1,93 @@ +{ + "resourceType": "NutritionOrder", + "id": "infantenteral", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: infantenteral

identifier: 123

status: active

patient: Peter Chalmers

encounter: Inpatient

dateTime: 17/09/2014

orderer: Dr Adam Careful

enteralFormula

baseFormulaType: infant formula + iron (Details : {SNOMED CT code '412414007' = 'Infant formula + iron', given as 'infant formula + iron'})

baseFormulaProductName: Acme Infant Formula + Iron

additiveType: Carbohydrate (Details : {http://hl7.org/fhir/entformula-additive code 'carbohydrate' = 'Carbohydrate', given as 'Carbohydrate'})

additiveProductName: Acme High Carbohydrate Additive

caloricDensity: 20 calories per ounce (Details: UCUM code cal/[foz_us] = 'cal/foz_us')

routeofAdministration: Swallow, oral (Details : {http://hl7.org/fhir/v3/RouteOfAdministration code 'PO' = 'Swallow, oral', given as 'Swallow, oral'})

Administrations

-ScheduleQuantity
*Starting 17/09/2014, Do Once per 3 hours4 ounces (Details: UCUM code [foz_us] = 'foz_us')

maxVolumeToDeliver: 32 ounces (Details: UCUM code [foz_us] = 'foz_us')

administrationInstruction: Add high calorie high carbohydrate additive to increase cal/oz from 24 cal/oz to 27 cal/oz.

" + }, + "identifier": [ + { + "system": "http://www.acme.org/nutritionorders", + "value": "123" + } + ], + "status": "active", + "patient": { + "reference": "Patient/example", + "display": "Peter Chalmers" + }, + "encounter": { + "reference": "Encounter/example", + "display": "Inpatient" + }, + "dateTime": "2014-09-17", + "orderer": { + "reference": "Practitioner/example", + "display": "Dr Adam Careful" + }, + "enteralFormula": { + "baseFormulaType": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "412414007", + "display": "infant formula + iron" + } + ] + }, + "baseFormulaProductName": "Acme Infant Formula + Iron", + "additiveType": { + "coding": [ + { + "system": "http://hl7.org/fhir/entformula-additive", + "code": "carbohydrate", + "display": "Carbohydrate" + } + ] + }, + "additiveProductName": "Acme High Carbohydrate Additive", + "caloricDensity": { + "value": 20, + "unit": "calories per ounce", + "system": "http://unitsofmeasure.org", + "code": "cal/[foz_us]" + }, + "routeofAdministration": { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/RouteOfAdministration", + "code": "PO", + "display": "Swallow, oral", + "userSelected": true + } + ] + }, + "administration": [ + { + "schedule": { + "repeat": { + "boundsPeriod": { + "start": "2014-09-17" + }, + "frequency": 1, + "period": 3, + "periodUnit": "h" + } + }, + "quantity": { + "value": 4, + "unit": "ounces", + "system": "http://unitsofmeasure.org", + "code": "[foz_us]" + } + } + ], + "maxVolumeToDeliver": { + "value": 32, + "unit": "ounces", + "system": "http://unitsofmeasure.org", + "code": "[foz_us]" + }, + "administrationInstruction": "Add high calorie high carbohydrate additive to increase cal/oz from 24 cal/oz to 27 cal/oz." + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Observation.json b/data/SampleData/Stu3/Observation.json new file mode 100644 index 000000000..2e5c844b5 --- /dev/null +++ b/data/SampleData/Stu3/Observation.json @@ -0,0 +1,67 @@ +{ + "resourceType": "Observation", + "id": "example-TPMT-haplotype-two", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example-TPMT-haplotype-two

status: unknown

code: Haplotype Call (Details : {SNOMED CT code '363779003' = '363779003', given as 'Genotype determination'})

subject: E***********

issued: 03/04/2013 3:30:10 PM

value: *4 (Details : {http://pharmakb.org code 'PA166128353' = 'PA166128353', given as '*4'})

Relateds

-TypeTarget
*derived-fromSequence/example-TPMT-two
" + }, + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/observation-geneticsGene", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://www.genenames.org", + "code": "12014", + "display": "TPMT" + } + ] + } + } + ], + "status": "unknown", + "code": { + "coding": [ + { + "system": "http://snomed.info", + "code": "363779003", + "display": "Genotype determination" + } + ], + "text": "Haplotype Call" + }, + "subject": { + "reference": "Patient/example", + "display": "E***********" + }, + "issued": "2013-04-03T15:30:10+01:00", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://pharmakb.org", + "code": "PA166128353", + "display": "*4" + } + ] + }, + "related": [ + { + "type": "derived-from", + "target": { + "reference": "Sequence/example-TPMT-two" + } + }, + { + "type": "sequel-to", + "target": { + "reference": "Sequence/example-TPMT-two" + } + }, + { + "type": "interfered-by", + "target": { + "reference": "Sequence/example-TPMT-two" + } + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/OperationDefinition.json b/data/SampleData/Stu3/OperationDefinition.json new file mode 100644 index 000000000..b2ddfa656 --- /dev/null +++ b/data/SampleData/Stu3/OperationDefinition.json @@ -0,0 +1,223 @@ +{ + "resourceType": "OperationDefinition", + "id": "CodeSystem-lookup", + "text": { + "status": "generated", + "div": "
!-- Snipped for Brevity -->
" + }, + "url": "http://hl7.org/fhir/OperationDefinition/CodeSystem-lookup", + "name": "Concept Look Up & Decomposition", + "status": "draft", + "kind": "operation", + "date": "2019-10-24T11:53:00+11:00", + "publisher": "HL7 (FHIR Project)", + "contact": [ + { + "telecom": [ + { + "system": "url", + "value": "http://hl7.org/fhir" + }, + { + "system": "email", + "value": "fhir@lists.hl7.org" + } + ] + } + ], + "description": "Given a code/system, or a Coding, get additional details about the concept, including definition, status, designations, and properties. One of the products of this operation is a full decomposition of a code from a structure terminology", + "code": "lookup", + "comment": "Note that the $lookup operation is more than just a code system search - the server finds the concept, and gathers the return information from the underlying code system definitions.", + "resource": [ + "CodeSystem" + ], + "system": false, + "type": true, + "instance": false, + "parameter": [ + { + "name": "code", + "use": "in", + "min": 0, + "max": "1", + "documentation": "The code that is to be located. If a code is provided, a system must be provided", + "type": "code", + "binding":{ + "valueSetReference":{ +"reference":"test" +} +} + }, + { + "name": "system", + "use": "in", + "min": 0, + "max": "1", + "documentation": "The system for the code that is to be located", + "type": "uri" + }, + { + "name": "version", + "use": "in", + "min": 0, + "max": "1", + "documentation": "The version of the system, if one was provided in the source data", + "type": "string" + }, + { + "name": "coding", + "use": "in", + "min": 0, + "max": "1", + "documentation": "A coding to look up", + "type": "Coding" + }, + { + "name": "date", + "use": "in", + "min": 0, + "max": "1", + "documentation": "The date for which the information should be returned. Normally, this is the current conditions (which is the default value) but under some circumstances, systems need to acccess this information as it would have been in the past. A typical example of this would be where code selection is constrained to the set of codes that were available when the patient was treated, not when the record is being edited. Note that which date is appropriate is a matter for implementation policy.", + "type": "dateTime" + }, + { + "name": "displayLanguage", + "use": "in", + "min": 0, + "max": "1", + "documentation": "The requested language for display (see ExpansionProfile.displayLanguage)", + "type": "code" + }, + { + "name": "property", + "use": "in", + "min": 0, + "max": "*", + "documentation": "A property that the client wishes to be returned in the output. If no properties are specified, the server chooses what to return. The following properties are defined for all code systems: url, name, version (code system info) and code information: display, definition, designation, parent and child, and for designations, lang.X where X is a designation language code. Some of the properties are returned explicit in named parameters (when the names match), and the rest (except for lang.X) in the property parameter group", + "type": "code" + }, + { + "name": "name", + "use": "out", + "min": 1, + "max": "1", + "documentation": "A display name for the code system", + "type": "string" + }, + { + "name": "version", + "use": "out", + "min": 0, + "max": "1", + "documentation": "The version that these details are based on", + "type": "string" + }, + { + "name": "display", + "use": "out", + "min": 1, + "max": "1", + "documentation": "The preferred display for this concept", + "type": "string" + }, + { + "name": "designation", + "use": "out", + "min": 0, + "max": "*", + "documentation": "Additional representations for this concept", + "part": [ + { + "name": "language", + "use": "out", + "min": 0, + "max": "1", + "documentation": "The language this designation is defined for", + "type": "code" + }, + { + "name": "use", + "use": "out", + "min": 0, + "max": "1", + "documentation": "A code that details how this designation would be used", + "type": "Coding" + }, + { + "name": "value", + "use": "out", + "min": 1, + "max": "1", + "documentation": "The text value for this designation", + "type": "string" + } + ] + }, + { + "name": "property", + "use": "out", + "min": 0, + "max": "*", + "documentation": "One or more properties that contain additional information about the code, including status. For complex terminologies (e.g. SNOMED CT, LOINC, medications), these properties serve to decompose the code", + "part": [ + { + "name": "code", + "use": "out", + "min": 1, + "max": "1", + "documentation": "Identifies the property returned", + "type": "code" + }, + { + "name": "value", + "use": "out", + "min": 0, + "max": "1", + "documentation": "The value of the property returned", + "type": "code" + }, + { + "name": "description", + "use": "out", + "min": 0, + "max": "1", + "documentation": "Human Readable representation of the property value (e.g. display for a code)", + "type": "string" + }, + { + "name": "subproperty", + "use": "out", + "min": 0, + "max": "*", + "documentation": "Nested Properties (mainly used for SNOMED CT decomposition, for relationship Groups)", + "part": [ + { + "name": "code", + "use": "out", + "min": 1, + "max": "1", + "documentation": "Identifies the sub-property returned", + "type": "code" + }, + { + "name": "value", + "use": "out", + "min": 1, + "max": "1", + "documentation": "The value of the sub-property returned", + "type": "code" + }, + { + "name": "description", + "use": "out", + "min": 0, + "max": "1", + "documentation": "Human Readable representation of the property value (e.g. display for a code)", + "type": "string" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/OperationOutcome.json b/data/SampleData/Stu3/OperationOutcome.json new file mode 100644 index 000000000..3e4981dfd --- /dev/null +++ b/data/SampleData/Stu3/OperationOutcome.json @@ -0,0 +1,24 @@ +{ + "resourceType": "OperationOutcome", + "id": "101", + "text": { + "status": "additional", + "div": "
\n

W is not a recognized code for Gender.

\n
" + }, + "issue": [ + { + "severity": "error", + "code": "code-invalid", + "details": { + "text": "The code \"W\" is not known and not legal in this context" + }, + "diagnostics": "Acme.Interop.FHIRProcessors.Patient.processGender line 2453", + "location": [ + "/f:Person/f:gender" + ], + "expression": [ + "Person.gender" + ] + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Organization.json b/data/SampleData/Stu3/Organization.json new file mode 100644 index 000000000..8a3dacf8f --- /dev/null +++ b/data/SampleData/Stu3/Organization.json @@ -0,0 +1,71 @@ +{ + "resourceType": "Organization", + "id": "f003", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: f003

active: true

type: Hospital Department (Details : {http://hl7.org/fhir/organization-type code 'dept' = 'Hospital Department', given as 'Hospital Department'})

name: Burgers UMC Ear,Nose,Throat unit

telecom: ph: 022-655 6780

address: West Wing, floor 5

partOf: Organization/f001

Contacts

-PurposeNameTelecomAddress
*Administrative (Details : {http://hl7.org/fhir/contactentity-type code 'ADMIN' = 'Administrative)mr. F. de Hondph: 022-655 7654West Wing, floor 5
" + }, + "active": true, + "type": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/organization-type", + "code": "dept", + "display": "Hospital Department" + } + ] + } + ], + "name": "Burgers UMC Ear,Nose,Throat unit", + "telecom": [ + { + "system": "phone", + "value": "022-655 6780" + } + ], + "address": [ + { + "line": [ + "West Wing, floor 5" + ] + } + ], + "partOf": { + "reference": "Organization/f001" + }, + "contact": [ + { + "purpose": { + "coding": [ + { + "system": "http://hl7.org/fhir/contactentity-type", + "code": "ADMIN" + } + ] + }, + "name": { + "text": "mr. F. de Hond" + }, + "telecom": [ + { + "system": "phone", + "value": "022-655 7654" + }, + { + "system": "email", + "value": "KNO@burgersumc.nl" + }, + { + "system": "fax", + "value": "022-655 0998" + } + ], + "address": { + "line": [ + "West Wing, floor 5" + ] + } + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Parameters.json b/data/SampleData/Stu3/Parameters.json new file mode 100644 index 000000000..661f47b83 --- /dev/null +++ b/data/SampleData/Stu3/Parameters.json @@ -0,0 +1,26 @@ +{ + "resourceType": "Parameters", + "id": "example", + "parameter": [ + { + "name": "start", + "valueDate": "2010-01-01" + }, + { + "name": "end", + "resource": { + "resourceType": "Binary", + "contentType": "text/plain", + "content": "VGhpcyBpcyBhIHRlc3QgZXhhbXBsZQ==" + } + }, + { + "name": "testMoney", + "valueMoney": { + "value": 10.0, + "code": "test", + "unit": "testUnit" + } + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Patient.json b/data/SampleData/Stu3/Patient.json new file mode 100644 index 000000000..7c502ea95 --- /dev/null +++ b/data/SampleData/Stu3/Patient.json @@ -0,0 +1,98 @@ +{ + "resourceType": "Patient", + "id": "animal", + "text": { + "status": "generated", + "div": "
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
IdKenzi (Dog: Golden Retriever)
OwnerPeter Chalmers, 534 Erewhon, Pleasantville, Vic, 3999
ContactsWork: (03) 5555 6473
IdDog Tag: 1234123 (Maroondah City Council)
\n \n
" + }, + "identifier": [ + { + "type": { + "text": "Dog Tag" + }, + "system": "http://www.maroondah.vic.gov.au/AnimalRegFees.aspx", + "value": "1234123", + "period": { + "start": "2010-05-31" + }, + "assigner": { + "display": "Maroondah City Council" + } + } + ], + "active": true, + "name": [ + { + "use": "usual", + "given": [ + "Kenzi" + ] + } + ], + "gender": "female", + "birthDate": "2010-03-23", + "contact": [ + { + "relationship": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/v2/0131", + "code": "C" + } + ] + } + ], + "name": { + "family": "Chalmers", + "given": [ + "Peter", + "James" + ] + }, + "telecom": [ + { + "system": "phone", + "value": "(03) 5555 6473", + "use": "work" + } + ] + } + ], + "animal": { + "species": { + "coding": [ + { + "system": "http://hl7.org/fhir/animal-species", + "code": "canislf", + "display": "Dog" + } + ] + }, + "breed": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "58108001", + "display": "Golden retriever" + }, + { + "system": "http://hl7.org/fhir/animal-breed", + "code": "gret", + "display": "Golden Retriever" + } + ] + }, + "genderStatus": { + "coding": [ + { + "system": "http://hl7.org/fhir/animal-genderstatus", + "code": "neutered" + } + ] + } + }, + "managingOrganization": { + "display": "Pete's Vetinary Services" + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/PaymentNotice.json b/data/SampleData/Stu3/PaymentNotice.json new file mode 100644 index 000000000..7422b7781 --- /dev/null +++ b/data/SampleData/Stu3/PaymentNotice.json @@ -0,0 +1,46 @@ +{ + "resourceType": "PaymentNotice", + "id": "77654", + "text": { + "status": "generated", + "div": "
A human-readable rendering of the PaymentNotice
" + }, + "identifier": [ + { + "system": "http://benefitsinc.com/paymentnotice", + "value": "776543" + } + ], + "status": "active", + "request": { + "reference": "http://benefitsinc.com/fhir/claim/12345" + }, + "response": { + "reference": "http://benefitsinc.com/fhir/claimresponse/CR12345" + }, + "statusDate": "2014-08-15", + "created": "2014-08-16", + "target": { + "identifier": { + "system": "http://regulators.gov", + "value": "AB123" + } + }, + "provider": { + "identifier": { + "system": "http://npid.org/provider", + "value": "PR957857" + } + }, + "organization": { + "reference": "Organization/1" + }, + "paymentStatus": { + "coding": [ + { + "system": "http://hl7.org/fhir/paymentstatus", + "code": "paid" + } + ] + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/PaymentReconciliation.json b/data/SampleData/Stu3/PaymentReconciliation.json new file mode 100644 index 000000000..43f7cffe4 --- /dev/null +++ b/data/SampleData/Stu3/PaymentReconciliation.json @@ -0,0 +1,138 @@ +{ + "resourceType": "PaymentReconciliation", + "id": "ER2500", + "text": { + "status": "generated", + "div": "
A human-readable rendering of the PaymentReconciliation
" + }, + "identifier": [ + { + "system": "http://www.BenefitsInc.com/fhir/enrollmentresponse", + "value": "781234" + } + ], + "status": "active", + "period": { + "start": "2014-08-16", + "end": "2014-08-31" + }, + "created": "2014-08-16", + "organization": { + "reference": "Organization/2" + }, + "request": { + "reference": "http://www.BenefitsInc.com/fhir/eligibility/225476332402" + }, + "outcome": { + "coding": [ + { + "system": "http://hl7.org/fhir/remittance-outcome", + "code": "complete" + } + ] + }, + "disposition": "2014 August mid-month settlement.", + "requestProvider": { + "reference": "Practitioner/example" + }, + "requestOrganization": { + "reference": "Organization/1" + }, + "detail": [ + { + "type": { + "coding": [ + { + "system": "http://hl7.org/fhir/payment-type", + "code": "payment" + } + ] + }, + "request": { + "identifier": { + "system": "http://happyvalleyclinic.com/claim", + "value": "AB12345" + } + }, + "response": { + "identifier": { + "system": "http://www.BenefitsInc.com/fhir/claimresponse", + "value": "CR20140815-AB12345" + } + }, + "submitter": { + "reference": "Organization/1" + }, + "payee": { + "reference": "Organization/1" + }, + "date": "2014-08-16", + "amount": { + "value": 1000.00, + "system": "urn:iso:std:iso:4217", + "code": "USD" + } + }, + { + "type": { + "coding": [ + { + "system": "http://hl7.org/fhir/payment-type", + "code": "payment" + } + ] + }, + "request": { + "reference": "http://www.BenefitsInc.com/fhir/oralhealthclaim/225476332699" + }, + "date": "2014-08-12", + "amount": { + "value": 4000.00, + "system": "urn:iso:std:iso:4217", + "code": "USD" + } + }, + { + "type": { + "coding": [ + { + "system": "http://hl7.org/fhir/payment-type", + "code": "advance" + } + ] + }, + "date": "2014-08-16", + "amount": { + "value": -1500.00, + "system": "urn:iso:std:iso:4217", + "code": "USD" + } + } + ], + "form": { + "coding": [ + { + "system": "http://ncforms.org/formid", + "code": "PAYREC/2016/01B" + } + ] + }, + "total": { + "value": 3500.00, + "system": "urn:iso:std:iso:4217", + "code": "USD" + }, + "processNote": [ + { + "type": { + "coding": [ + { + "system": "http://hl7.org/fhir/note-type", + "code": "display" + } + ] + }, + "text": "Due to the year end holiday the cutoff for submissions for December will be the 28th." + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Person.json b/data/SampleData/Stu3/Person.json new file mode 100644 index 000000000..ccf6e1e6a --- /dev/null +++ b/data/SampleData/Stu3/Person.json @@ -0,0 +1,88 @@ +{ + "resourceType": "Person", + "id": "example", + "text": { + "status": "generated", + "div": "
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
NamePeter James Chalmers ("Jim")
Address534 Erewhon, Pleasantville, Vic, 3999
ContactsHome: unknown. Work: (03) 5555 6473
IdMRN: 12345 (Acme Healthcare)
\n
" + }, + "identifier": [ + { + "use": "usual", + "type": { + "coding": [ + { + "system": "http://hl7.org/fhir/v2/0203", + "code": "MR" + } + ] + }, + "system": "urn:oid:1.2.36.146.595.217.0.1", + "value": "12345", + "period": { + "start": "2001-05-06" + }, + "assigner": { + "display": "Acme Healthcare" + } + } + ], + "name": [ + { + "use": "official", + "family": "Chalmers", + "given": [ + "Peter", + "James" + ] + }, + { + "use": "usual", + "given": [ + "Jim" + ] + } + ], + "telecom": [ + { + "use": "home" + }, + { + "system": "phone", + "value": "(03) 5555 6473", + "use": "work" + }, + { + "system": "email", + "value": "Jim@example.org", + "use": "home" + } + ], + "gender": "male", + "birthDate": "1974-12-25", + "address": [ + { + "use": "home", + "line": [ + "534 Erewhon St" + ], + "city": "PleasantVille", + "state": "Vic", + "postalCode": "3999" + } + ], + "active": true, + "link": [ + { + "target": { + "reference": "RelatedPerson/peter", + "display": "Peter Chalmers" + } + }, + { + "target": { + "reference": "Patient/example", + "display": "Peter Chalmers" + } + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/PlanDefinition.json b/data/SampleData/Stu3/PlanDefinition.json new file mode 100644 index 000000000..a7f94556c --- /dev/null +++ b/data/SampleData/Stu3/PlanDefinition.json @@ -0,0 +1,372 @@ +{ + "resourceType": "PlanDefinition", + "id": "low-suicide-risk-order-set", + "text": { + "status": "generated", + "div": "
\n \n \n \n \n \n \n \n
\n Id: \n
PlanDefinition/low-suicide-risk-order-set
\n

\n \n \n \n \n \n \n \n
\n Identifier: \n
\n value: \n mmi:low-suicide-risk-order-set\n
\n

\n \n \n \n \n \n \n \n
\n Title: \n
Low Suicide Risk Order Set
\n

\n \n \n \n \n \n \n \n
\n Status: \n
draft
\n

\n \n \n \n \n \n \n \n
\n Description: \n
Orders to be applied to a patient characterized as low suicide risk.
\n

\n \n \n \n \n \n \n \n
\n Purpose: \n
This order set helps ensure consistent application of appropriate orders for the care of low suicide risk patients.
\n

\n \n \n \n \n \n \n \n
\n Usage: \n
This order set should be applied after assessing a patient for suicide risk, when the findings of that assessment indicate the patient has low suicide risk.
\n

\n \n \n \n \n \n \n \n
\n Context: \n
\n

\n system: \n http://hl7.org/fhir/usage-context-type\n

\n

\n code: \n age\n

\n

\n value: \n
\n \n \n \n \n system: \n https://meshb.nlm.nih.gov\n
\n
\n \n code: \n D000328\n
\n
\n \n display: \n Adult\n \n
\n
\n
\n

\n
\n \n \n \n \n \n \n \n
\n Context: \n
\n

\n system: \n http://hl7.org/fhir/usage-context-type\n

\n

\n code: \n focus\n

\n

\n value: \n
\n \n \n \n \n system: \n http://snomed.info/sct\n
\n
\n \n code: \n 87512008\n
\n
\n \n display: \n Mild major depression\n \n
\n
\n
\n

\n
\n \n \n \n \n \n \n \n
\n Context: \n
\n

\n system: \n http://hl7.org/fhir/usage-context-type\n

\n

\n code: \n focus\n

\n

\n value: \n
\n \n \n \n \n system: \n http://snomed.info/sct\n
\n
\n \n code: \n 40379007\n
\n
\n \n display: \n Major depression, recurrent, mild\n \n
\n
\n
\n

\n
\n \n \n \n \n \n \n \n
\n Context: \n
\n

\n system: \n http://hl7.org/fhir/usage-context-type\n

\n

\n code: \n focus\n

\n

\n value: \n
\n \n \n \n \n system: \n http://snomed.info/sct\n
\n
\n \n code: \n 394687007\n
\n
\n \n display: \n Low suicide risk\n \n
\n
\n
\n

\n
\n \n \n \n \n \n \n \n
\n Context: \n
\n

\n system: \n http://hl7.org/fhir/usage-context-type\n

\n

\n code: \n focus\n

\n

\n value: \n
\n \n \n \n \n system: \n http://snomed.info/sct\n
\n
\n \n code: \n 225337009\n
\n
\n \n display: \n Suicide risk assessment\n \n
\n
\n
\n

\n
\n \n \n \n \n \n \n \n
\n Context: \n
\n

\n system: \n http://hl7.org/fhir/usage-context-type\n

\n

\n code: \n user\n

\n

\n value: \n
\n \n \n \n \n system: \n http://snomed.info/sct\n
\n
\n \n code: \n 309343006\n
\n
\n \n display: \n Physician\n \n
\n
\n
\n

\n
\n \n \n \n \n \n \n \n
\n Context: \n
\n

\n system: \n http://hl7.org/fhir/usage-context-type\n

\n

\n code: \n venue\n

\n

\n value: \n
\n \n \n \n \n system: \n http://snomed.info/sct\n
\n
\n \n code: \n 440655000\n
\n
\n \n display: \n Outpatient environment\n \n
\n
\n
\n

\n
\n

\n \n \n \n \n \n \n \n
\n Topic: \n
\n \n text: \n Suicide risk assessment\n \n
\n

\n \n \n \n \n \n \n \n \n \n \n
\n Contributor: \n
\n \n author:\n \n
Motive Medical Intelligence
\n

\n \n \n \n \n \n \n \n \n \n \n
\n Library: \n
\n reference: \n Library/suiciderisk-orderset-logic\n
\n display: \n SuicideRiskLogic\n
\n

\n

Actions

\n

\n \n Step: \n
\n \n title: \n Suicide Risk Assessment and Outpatient Management\n
\n
\n \n \n Step: \n
\n \n title: \n Consults and Referrals\n
\n
\n \n \n Step: \n
\n \n text: \n Refer to outpatient mental health program for evaluation and treatment of mental health conditions now\n
\n
\n \n condition: \n
\n \n reference: \n
\n #referralToMentalHealthCare\n \n \n
\n \n description: \n refer to primary care mental-health integrated care program for evaluation and treatment of mental health conditions now\n
\n
\n \n category: \n referral\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n \n Step: \n
\n \n title: \n Medications\n
\n
\n \n \n Step: \n
\n \n title: \n First-Line Antidepressants\n
\n
\n \n \n Step: \n
\n \n title: \n Selective Serotonin Reuptake Inhibitors (Choose a mazimum of one or document reasons for exception)\n
\n
\n \n \n Step: \n
\n \n text: \n citalopram 20 mg tablet 1 tablet oral 1 time daily now (30 table; 3 refills)\n
\n
\n \n condition: \n
\n \n reference: \n
\n #citalopramPrescription\n \n \n \n
\n \n category: \n drug\n
\n
\n
\n
\n \n \n \n \n \n \n \n Step: \n
\n \n text: \n escitalopram 10 mg tablet 1 tablet oral 1 time daily now (30 tablet; 3 refills)\n
\n
\n \n \n \n Step: \n
\n \n text: \n fluoxetine 20 mg capsule 1 capsule oral 1 time daily now (30 tablet; 3 refills)\n
\n
\n \n \n \n Step: \n
\n \n text: \n paroxetine 20 mg tablet 1 tablet oral 1 time daily now (30 tablet; 3 refills)\n
\n
\n \n \n \n Step: \n
\n \n text: \n sertraline 50 mg tablet 1 tablet oral 1 time daily now (30 tablet; 3 refills)\n
\n
\n \n \n
\n
\n \n Step: \n
\n \n text: \n Dopamine Norepinephrine Reuptake Inhibitors (Choose a maximum of one or document reasons for exception)\n
\n
\n \n \n \n Step: \n
\n \n text: \n Serotonin Norepinephrine Reuptake Inhibitors (Choose a maximum of one or doument reasons for exception)\n
\n
\n \n \n \n Step: \n
\n \n text: \n Norepinephrine-Serotonin Modulators (Choose a maximum of one or document reasons for exception)\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n

\n
" + }, + "url": "http://motivemi.com/artifacts/PlanDefinition/low-suicide-risk-order-set", + "identifier": [ + { + "use": "official", + "system": "http://motivemi.com/artifacts", + "value": "mmi:low-suicide-risk-order-set" + } + ], + "version": "1.0.0", + "name": "LowSuicideRiskOrderSet", + "title": "Low Suicide Risk Order Set", + "status": "active", + "experimental": true, + "date": "2015-08-15", + "publisher": "Motive Medical Intelligence", + "description": "Orders to be applied to a patient characterized as low suicide risk.", + "purpose": "This order set helps ensure consistent application of appropriate orders for the care of low suicide risk patients.", + "usage": "This order set should be applied after assessing a patient for suicide risk, when the findings of that assessment indicate the patient has low suicide risk.", + "approvalDate": "2016-03-12", + "lastReviewDate": "2016-08-15", + "effectivePeriod": { + "start": "2016-01-01", + "end": "2017-12-31" + }, + "useContext": [ + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "age" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "https://meshb.nlm.nih.gov", + "code": "D000328", + "display": "Adult" + } + ] + } + }, + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "focus" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "87512008", + "display": "Mild major depression" + } + ] + } + }, + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "focus" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "40379007", + "display": "Major depression, recurrent, mild" + } + ] + } + }, + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "focus" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "394687007", + "display": "Low suicide risk" + } + ] + } + }, + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "focus" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "225337009", + "display": "Suicide risk assessment" + } + ] + } + }, + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "user" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "309343006", + "display": "Physician" + } + ] + } + }, + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "venue" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "440655000", + "display": "Outpatient environment" + } + ] + } + } + ], + "jurisdiction": [ + { + "coding": [ + { + "system": "urn:iso:std:iso:3166", + "code": "US" + } + ] + } + ], + "topic": [ + { + "text": "Suicide risk assessment" + } + ], + "contributor": [ + { + "type": "author", + "name": "Motive Medical Intelligence", + "contact": [ + { + "telecom": [ + { + "system": "phone", + "value": "415-362-4007", + "use": "work" + }, + { + "system": "email", + "value": "info@motivemi.com", + "use": "work" + } + ] + } + ] + } + ], + "contact": [ + { + "telecom": [ + { + "system": "phone", + "value": "415-362-4007", + "use": "work" + }, + { + "system": "email", + "value": "info@motivemi.com", + "use": "work" + } + ] + } + ], + "copyright": "© Copyright 2016 Motive Medical Intelligence. All rights reserved.", + "relatedArtifact": [ + { + "type": "derived-from", + "display": "Practice Guideline for the Treatment of Patients with Major Depressive Disorder", + "url": "http://psychiatryonline.org/pb/assets/raw/sitewide/practice_guidelines/guidelines/mdd.pdf" + }, + { + "type": "composed-of", + "resource": { + "reference": "ActivityDefinition/referralPrimaryCareMentalHealth" + } + }, + { + "type": "composed-of", + "resource": { + "reference": "ActivityDefinition/citalopramPrescription" + } + } + ], + "library": [ + { + "reference": "Library/suiciderisk-orderset-logic", + "display": "SuicideRiskLogic" + } + ], + "action": [ + { + "title": "Suicide Risk Assessment and Outpatient Management", + "action": [ + { + "title": "Consults and Referrals", + "groupingBehavior": "logical-group", + "selectionBehavior": "any", + "action": [ + { + "textEquivalent": "Refer to outpatient mental health program for evaluation and treatment of mental health conditions now", + "definition": { + "reference": "#referralToMentalHealthCare" + }, + "dynamicValue": [ + { + "path": "timing.event", + "expression": "Now()" + }, + { + "path": "specialty", + "expression": "Code '261QM0850X' from SuicideRiskLogic." + }, + { + "path": "occurrenceDateTime", + "expression": "SuicideRiskLogic.ReferralRequestFulfillmentTime" + }, + { + "path": "subject", + "expression": "SuicideRiskLogic.Patient" + }, + { + "path": "requester.agent", + "expression": "SuicideRiskLogic.Practitioner" + }, + { + "path": "reasonCode", + "expression": "SuicideRiskLogic.RiskAssessmentScore" + }, + { + "path": "reasonReference", + "expression": "SuicideRiskLogic.RiskAssessment" + } + ] + } + ] + }, + { + "title": "Medications", + "groupingBehavior": "logical-group", + "selectionBehavior": "at-most-one", + "action": [ + { + "title": "First-Line Antidepressants", + "documentation": [ + { + "type": "citation", + "document": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/cqif-qualityOfEvidence", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/evidence-quality", + "code": "high" + } + ], + "text": "High Quality" + } + } + ], + "contentType": "text/html", + "url": "http://psychiatryonline.org/pb/assets/raw/sitewide/practice_guidelines/guidelines/mdd.pdf", + "title": "Practice Guideline for the Treatment of Patients with Major Depressive Disorder" + } + } + ], + "groupingBehavior": "logical-group", + "selectionBehavior": "at-most-one", + "action": [ + { + "title": "Selective Serotonin Reuptake Inhibitors (Choose a mazimum of one or document reasons for exception)", + "documentation": [ + { + "type": "citation", + "document": { + "contentType": "text/html", + "url": "http://dailymed.nlm.nih.gov/dailymed/drugInfo.cfm?setid=6daeb45c-451d-b135-bf8f-2d6dff4b6b01", + "title": "National Library of Medicine. DailyMed website. CITALOPRAM- citalopram hydrobromide tablet, film coated." + } + } + ], + "groupingBehavior": "logical-group", + "selectionBehavior": "at-most-one", + "action": [ + { + "textEquivalent": "citalopram 20 mg tablet 1 tablet oral 1 time daily now (30 table; 3 refills)", + "definition": { + "reference": "#citalopramPrescription" + }, + "dynamicValue": [ + { + "path": "status", + "expression": "'draft'" + }, + { + "path": "patient", + "expression": "SuicideRiskLogic.Patient" + }, + { + "path": "prescriber", + "expression": "SuicideRiskLogic.Practitioner" + }, + { + "path": "reasonCode", + "expression": "SuicideRiskLogic.RiskAssessmentScore" + }, + { + "path": "reasonReference", + "expression": "SuicideRiskLogic.RiskAssessment" + } + ] + }, + { + "textEquivalent": "escitalopram 10 mg tablet 1 tablet oral 1 time daily now (30 tablet; 3 refills)" + }, + { + "textEquivalent": "fluoxetine 20 mg capsule 1 capsule oral 1 time daily now (30 tablet; 3 refills)" + }, + { + "textEquivalent": "paroxetine 20 mg tablet 1 tablet oral 1 time daily now (30 tablet; 3 refills)" + }, + { + "textEquivalent": "sertraline 50 mg tablet 1 tablet oral 1 time daily now (30 tablet; 3 refills)" + } + ] + }, + { + "textEquivalent": "Dopamine Norepinephrine Reuptake Inhibitors (Choose a maximum of one or document reasons for exception)" + }, + { + "textEquivalent": "Serotonin Norepinephrine Reuptake Inhibitors (Choose a maximum of one or doument reasons for exception)" + }, + { + "textEquivalent": "Norepinephrine-Serotonin Modulators (Choose a maximum of one or document reasons for exception)" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Practitioner.json b/data/SampleData/Stu3/Practitioner.json new file mode 100644 index 000000000..c981e788a --- /dev/null +++ b/data/SampleData/Stu3/Practitioner.json @@ -0,0 +1,62 @@ +{ + "resourceType": "Practitioner", + "id": "f001", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: f001

identifier: 938273695 (OFFICIAL), 129IDH4OP733 (USUAL)

name: Eric van den broek (OFFICIAL)

telecom: ph: 0205568263(WORK), E.M.vandenbroek@bmc.nl(WORK), fax: 0205664440(WORK)

address: Galapagosweg 91 Den Burg 9105 PZ NLD (WORK)

gender: male

birthDate: 07/12/1975

" + }, + "identifier": [ + { + "use": "official", + "system": "urn:oid:2.16.528.1.1007.3.1", + "value": "938273695" + }, + { + "use": "usual", + "system": "urn:oid:2.16.840.1.113883.2.4.6.3", + "value": "129IDH4OP733" + } + ], + "name": [ + { + "use": "official", + "family": "van den broek", + "given": [ + "Eric" + ], + "suffix": [ + "MD" + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "0205568263", + "use": "work" + }, + { + "system": "email", + "value": "E.M.vandenbroek@bmc.nl", + "use": "work" + }, + { + "system": "fax", + "value": "0205664440", + "use": "work" + } + ], + "address": [ + { + "use": "work", + "line": [ + "Galapagosweg 91" + ], + "city": "Den Burg", + "postalCode": "9105 PZ", + "country": "NLD" + } + ], + "gender": "male", + "birthDate": "1975-12-07" +} \ No newline at end of file diff --git a/data/SampleData/Stu3/PractitionerRole.json b/data/SampleData/Stu3/PractitionerRole.json new file mode 100644 index 000000000..a1aa14690 --- /dev/null +++ b/data/SampleData/Stu3/PractitionerRole.json @@ -0,0 +1,104 @@ +{ + "resourceType": "PractitionerRole", + "id": "example", + "text": { + "status": "generated", + "div": "
\n\t\t\t

\n\t\t\t\tDr Adam Careful is a Referring Practitioner for Acme Hospital from 1-Jan 2012 to 31-Mar\n\t\t\t\t2012\n\t\t\t

\n\t\t
" + }, + "identifier": [ + { + "system": "http://www.acme.org/practitioners", + "value": "23" + } + ], + "active": true, + "period": { + "start": "2012-01-01", + "end": "2012-03-31" + }, + "practitioner": { + "reference": "Practitioner/example", + "display": "Dr Adam Careful" + }, + "organization": { + "reference": "Organization/f001" + }, + "code": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/v2/0286", + "code": "RP" + } + ] + } + ], + "specialty": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "408443003", + "display": "General medical practice" + } + ] + } + ], + "location": [ + { + "reference": "Location/1", + "display": "South Wing, second floor" + } + ], + "healthcareService": [ + { + "reference": "HealthcareService/example" + } + ], + "telecom": [ + { + "system": "phone", + "value": "(03) 5555 6473", + "use": "work" + }, + { + "system": "email", + "value": "adam.southern@example.org", + "use": "work" + } + ], + "availableTime": [ + { + "daysOfWeek": [ + "mon", + "tue", + "wed" + ], + "availableStartTime": "09:00:00", + "availableEndTime": "16:30:00" + }, + { + "daysOfWeek": [ + "thu", + "fri" + ], + "availableStartTime": "09:00:00", + "availableEndTime": "12:00:00" + } + ], + "notAvailable": [ + { + "description": "Adam will be on extended leave during May 2017", + "during": { + "start": "2017-05-01", + "end": "2017-05-20" + } + } + ], + "availabilityExceptions": "Adam is generally unavailable on public holidays and during the Christmas/New Year break", + "endpoint": [ + { + "reference": "Endpoint/example" + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Procedure.json b/data/SampleData/Stu3/Procedure.json new file mode 100644 index 000000000..bf854938b --- /dev/null +++ b/data/SampleData/Stu3/Procedure.json @@ -0,0 +1,71 @@ +{ + "resourceType": "Procedure", + "id": "ambulation", + "text": { + "status": "generated", + "div": "
Ambulation procedure was not done
" + }, + "identifier": [ + { + "value": "12345" + } + ], + "definition": [ + { + "display": "Protocol for hypertension during pregnancy" + } + ], + "basedOn": [ + { + "reference": "CarePlan/preg", + "display": "Maternity care plan" + } + ], + "status": "aborted", + "notDone": false, + "notDoneReason": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "398254007", + "display": " Pre-eclampsia (disorder)" + } + ], + "text": "Pre-eclampsia" + }, + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "62013009", + "display": "Ambulating patient (procedure)" + } + ], + "text": "Ambulation" + }, + "subject": { + "reference": "Patient/example" + }, + "performer": [ + { + "actor": { + "reference": "Practitioner/f204", + "display": "Carla Espinosa" + }, + "onBehalfOf": { + "reference": "Organization/f001", + "display": "University Medical Hospital" + } + } + ], + "location": { + "reference": "Location/1", + "display": "Burgers University Medical Center, South Wing, second floor" + }, + "reasonReference": [ + { + "reference": "Observation/blood-pressure", + "display": "Blood Pressure" + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Provenance.json b/data/SampleData/Stu3/Provenance.json new file mode 100644 index 000000000..6bd54cd71 --- /dev/null +++ b/data/SampleData/Stu3/Provenance.json @@ -0,0 +1,58 @@ +{ + "resourceType": "Provenance", + "id": "signature", + "text": { + "status": "generated", + "div": "
procedure record authored on 27-June 2015 by Harold Hippocrates, MD Content extracted from Referral received 26-June
" + }, + "target": [ + { + "reference": "DocumentReference/example" + } + ], + "recorded": "2015-08-27T08:39:24+10:00", + "reason": [ + { + "system": "http://hl7.org/fhir/v3/ActReason", + "code": "TREAT", + "display": "treatment" + } + ], + "activity": { + "system": "http://hl7.org/fhir/v3/DocumentCompletion", + "code": "AU", + "display": "authenticated" + }, + "agent": [ + { + "role": [ + { + "coding": [ + { + "system": "http://www.hl7.org/fhir/contractsignertypecodes", + "code": "VERF" + } + ] + } + ], + "whoUri": "mailto://hhd@ssa.gov" + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.5", + "display": "Verification Signature" + } + ], + "when": "2015-08-27T08:39:24+10:00", + "whoReference": { + "reference": "Practitioner/xcda-author" + }, + "contentType": "application/signature+xml", + "blob": "Li4u" + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Provenance3.json b/data/SampleData/Stu3/Provenance3.json new file mode 100644 index 000000000..ce1571143 --- /dev/null +++ b/data/SampleData/Stu3/Provenance3.json @@ -0,0 +1,77 @@ +{ + "resourceType": "Provenance", + "id": "example", + "text": { + "status": "generated", + "div": "
procedure record authored on 27-June 2015 by Harold Hippocrates, MD Content extracted from XDS managed CDA Referral received 26-June
" + }, + "target": [ + { + "reference": "Procedure/example/_history/1" + } + ], + "period": { + "start": "2015-06-27", + "end": "2015-06-28" + }, + "recorded": "2015-06-27T08:39:24+10:00", + "policy": [ + "http://acme.com/fhir/Consent/25" + ], + "location": { + "reference": "Location/1" + }, + "reason": [ + { + "system": "http://snomed.info/sct", + "code": "3457005", + "display": "Referral" + } + ], + "agent": [ + { + "role": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/ParticipationType", + "code": "AUT" + } + ] + } + ], + "whoReference": { + "reference": "Practitioner/xcda-author" + }, + "onBehalfOfUri": "#a1", + "relatedAgentType": { + "text": "used" + } + }, + { + "id": "a1", + "role": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/ParticipationType", + "code": "DEV" + } + ] + } + ], + "whoReference": { + "reference": "Device/software" + } + } + ], + "entity": [ + { + "role": "source", + "whatReference": { + "reference": "DocumentReference/example", + "display": "CDA Document in XDS repository" + } + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Questionnaire.json b/data/SampleData/Stu3/Questionnaire.json new file mode 100644 index 000000000..f91f0b016 --- /dev/null +++ b/data/SampleData/Stu3/Questionnaire.json @@ -0,0 +1,480 @@ +{ + "resourceType": "Questionnaire", + "id": "54127-6", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/sdc/StructureDefinition/sdc-questionnaire" + ] + }, + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: 54127-6

meta:

contained: ,

url: http://hl7.org/fhir/us/sdc/Questionnaire/54127-6

identifier: 54127-6

title: US Surgeon General - Family Health Portrait

status: active

experimental: true

date: 01/01/2015

publisher: Regenstrief Institute, Inc and the LOINC Committee

description: This represents an implementation of the "US Surgeon General family health portrait" form found at https://lforms-demo.nlm.nih.gov

purpose: Captures basic family history information

approvalDate: 31/10/2015

lastReviewDate: 15/03/2017

useContext:

jurisdiction: United States (Details : {urn:iso:std:iso:3166 code 'US' = 'United States)

contact:

copyright: (c) 2015 Regenstrief Institute

code: US Surgeon General family health portrait [USSG-FHT] (Details: LOINC code 54127-6 = 'US Surgeon General family health portrait [USSG-FHT]', stated as 'US Surgeon General family health portrait [USSG-FHT]')

subjectType: Patient

item

linkId: 0

type: group

Items

-
*
*
*
*

item

linkId: 1

definition: http://loinc.org/fhir/DataElement/54126-8

text: Your health information

type: group

required: true

Items

-
*
*

item

linkId: 2

definition: http://loinc.org/fhir/DataElement/54114-4

text: Family member health information

type: group

repeats: true

Items

-
*
" + }, + "url": "http://hl7.org/fhir/us/sdc/Questionnaire/54127-6", + "identifier": [ + { + "system": "http://example.org/panel-id", + "value": "54127-6" + } + ], + "title": "US Surgeon General - Family Health Portrait", + "status": "active", + "experimental": true, + "date": "2015", + "publisher": "Regenstrief Institute, Inc and the LOINC Committee", + "description": "This represents an implementation of the \"US Surgeon General family health portrait\" form found at https://lforms-demo.nlm.nih.gov", + "purpose": "Captures basic family history information", + "approvalDate": "2015-10-31", + "lastReviewDate": "2017-03-15", + "useContext": [ + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "species" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "337915000", + "display": "Homo sapiens" + } + ] + } + } + ], + "jurisdiction": [ + { + "coding": [ + { + "system": "urn:iso:std:iso:3166", + "code": "US" + } + ] + } + ], + "contact": [ + { + "telecom": [ + { + "system": "url", + "value": "http://loinc.org" + } + ] + } + ], + "copyright": "(c) 2015 Regenstrief Institute", + "code": [ + { + "system": "http://loinc.org", + "code": "54127-6", + "display": "US Surgeon General family health portrait [USSG-FHT]" + } + ], + "subjectType": [ + "Patient" + ], + "item": [ + { + "linkId": "0", + "type": "group", + "item": [ + { + "linkId": "0.1", + "text": "Date Done", + "type": "date" + }, + { + "linkId": "0.2", + "text": "Time Done", + "type": "time" + }, + { + "linkId": "0.3", + "text": "Where Done", + "type": "string" + }, + { + "linkId": "0.4", + "text": "Comment", + "type": "string" + } + ] + }, + { + "linkId": "1", + "definition": "http://loinc.org/fhir/DataElement/54126-8", + "text": "Your health information", + "type": "group", + "required": true, + "item": [ + { + "linkId": "1.1", + "type": "group", + "item": [ + { + "linkId": "1.1.1", + "definition": "http://loinc.org/fhir/DataElement/54125-0", + "text": "Name", + "type": "string", + "maxLength": 200 + }, + { + "linkId": "1.1.2", + "definition": "http://loinc.org/fhir/DataElement/54131-8", + "text": "Gender", + "type": "choice", + "required": true, + "options": { + "reference": "http://hl7.org/fhir/us/sdc/ValueSet/LL1-9", + "display": "Gender_M/F" + }, + "item": [ + { + "linkId": "1.1.2.1.1", + "text": "Please specify", + "type": "string", + "required": true + } + ] + }, + { + "linkId": "1.1.3", + "definition": "http://loinc.org/fhir/DataElement/21112-8", + "text": "Date of Birth", + "type": "date" + }, + { + "linkId": "1.1.4", + "definition": "http://loinc.org/fhir/DataElement/54132-6", + "text": "Were you born a twin?", + "type": "choice", + "options": { + "reference": "http://hl7.org/fhir/us/sdc/ValueSet/LL623-0", + "display": "USSG-FHT twin" + }, + "initialCoding": { + "system": "http://loinc.org", + "code": "LA32-8", + "display": "No" + } + }, + { + "linkId": "1.1.5", + "definition": "http://loinc.org/fhir/DataElement/54128-4", + "text": "Were you adopted?", + "type": "choice", + "options": { + "reference": "http://hl7.org/fhir/us/sdc/ValueSet/LL361-7", + "display": "Y/N1" + } + }, + { + "linkId": "1.1.6", + "definition": "http://loinc.org/fhir/DataElement/54135-9", + "text": "Are your parents related to each other in any way other than marriage?", + "type": "choice", + "options": { + "reference": "http://hl7.org/fhir/us/sdc/ValueSet/LL361-7", + "display": "Y/N1" + } + }, + { + "linkId": "1.1.7", + "definition": "http://loinc.org/fhir/DataElement/8302-2", + "text": "Height", + "type": "decimal", + "required": true, + "item": [ + { + "linkId": "1.1.7.1.1", + "text": "Units", + "type": "choice", + "options": { + "reference": "#length" + } + } + ] + }, + { + "linkId": "1.1.8", + "definition": "http://loinc.org/fhir/DataElement/29463-7", + "text": "Weight", + "type": "decimal", + "item": [ + { + "linkId": "1.1.8.1.1", + "text": "Units", + "type": "choice", + "options": { + "reference": "#weight" + } + } + ] + }, + { + "linkId": "1.1.9", + "definition": "http://loinc.org/fhir/DataElement/39156-5", + "text": "Body mass index (BMI) [Ratio]", + "type": "decimal", + "readOnly": true + }, + { + "linkId": "1.1.10", + "definition": "http://loinc.org/fhir/DataElement/54134-2", + "text": "Race", + "type": "choice", + "required": true, + "options": { + "reference": "http://hl7.org/fhir/us/sdc/ValueSet/LL629-7", + "display": "USSG-FHT race" + } + }, + { + "linkId": "1.1.11", + "definition": "http://loinc.org/fhir/DataElement/54133-4", + "text": "Ethnicity", + "type": "choice", + "repeats": true, + "options": { + "reference": "http://hl7.org/fhir/us/sdc/ValueSet/LL628-9", + "display": "USSG-FHT ethnicity" + } + } + ] + }, + { + "linkId": "1.2", + "definition": "http://loinc.org/fhir/DataElement/54137-5", + "text": "Your diseases history", + "type": "group", + "repeats": true, + "item": [ + { + "linkId": "1.2.1", + "definition": "http://loinc.org/fhir/DataElement/54140-9", + "text": "Disease or Condition", + "type": "choice", + "options": { + "reference": "http://hl7.org/fhir/us/sdc/ValueSet/LL626-3", + "display": "USSG-FHT diseases" + } + }, + { + "linkId": "1.2.2", + "definition": "http://loinc.org/fhir/DataElement/54130-0", + "text": "Age at Diagnosis", + "type": "choice", + "options": { + "reference": "http://hl7.org/fhir/us/sdc/ValueSet/LL619-8", + "display": "USSG-FHT age" + } + } + ] + } + ] + }, + { + "linkId": "2", + "definition": "http://loinc.org/fhir/DataElement/54114-4", + "text": "Family member health information", + "type": "group", + "repeats": true, + "item": [ + { + "linkId": "2.1", + "type": "group", + "item": [ + { + "linkId": "2.1.1", + "type": "group", + "item": [ + { + "linkId": "2.1.1.1", + "definition": "http://loinc.org/fhir/DataElement/54136-7", + "text": "Relationship to you", + "type": "choice", + "options": { + "reference": "http://hl7.org/fhir/us/sdc/ValueSet/LL621-4", + "display": "USSG-FHT relationship" + } + }, + { + "linkId": "2.1.1.2", + "definition": "http://loinc.org/fhir/DataElement/54138-3", + "text": "Name", + "type": "string" + }, + { + "linkId": "2.1.1.3", + "definition": "http://loinc.org/fhir/DataElement/54123-5", + "text": "Gender", + "type": "choice", + "options": { + "reference": "http://hl7.org/fhir/us/sdc/ValueSet/LL1-9", + "display": "Gender_M/F" + }, + "item": [ + { + "linkId": "2.1.1.3.1.1", + "text": "Please specify", + "type": "string", + "required": true + } + ] + }, + { + "linkId": "2.1.1.4", + "definition": "http://loinc.org/fhir/DataElement/54139-1", + "text": "Living?", + "type": "choice", + "options": { + "reference": "http://hl7.org/fhir/us/sdc/ValueSet/LL361-7", + "display": "Y/N1" + }, + "item": [ + { + "linkId": "2.1.1.4.1", + "type": "group", + "item": [ + { + "linkId": "2.1.1.4.1.1", + "definition": "http://loinc.org/fhir/DataElement/54112-8", + "text": "Cause of Death", + "type": "choice", + "options": { + "reference": "http://hl7.org/fhir/us/sdc/ValueSet/LL627-1" + }, + "item": [ + { + "linkId": "2.1.1.4.1.1.1", + "text": "Please specify", + "type": "string" + } + ] + }, + { + "linkId": "2.1.1.4.1.2", + "definition": "http://loinc.org/fhir/DataElement/54113-6", + "text": "Age at Death", + "type": "choice", + "options": { + "reference": "http://hl7.org/fhir/us/sdc/ValueSet/LL619-8", + "display": "USSG-FHT age" + } + } + ] + }, + { + "linkId": "2.1.1.4.2", + "type": "group", + "item": [ + { + "linkId": "2.1.1.4.2.1", + "definition": "http://loinc.org/fhir/DataElement/54124-3", + "text": "Date of Birth", + "type": "date" + }, + { + "linkId": "2.1.1.4.2.2", + "definition": "http://loinc.org/fhir/DataElement/54141-7", + "text": "Age", + "type": "decimal" + } + ] + } + ] + }, + { + "linkId": "2.1.1.5", + "definition": "http://loinc.org/fhir/DataElement/54121-9", + "text": "Was this person born a twin?", + "type": "choice", + "options": { + "reference": "http://hl7.org/fhir/us/sdc/ValueSet/LL623-0" + } + }, + { + "linkId": "2.1.1.6", + "definition": "http://loinc.org/fhir/DataElement/54122-7", + "text": "Was this person adopted?", + "type": "choice", + "options": { + "reference": "http://hl7.org/fhir/us/sdc/ValueSet/LL623-0" + } + }, + { + "linkId": "2.1.1.7", + "definition": "http://loinc.org/fhir/DataElement/54119-3", + "text": "Race", + "type": "choice", + "repeats": true, + "options": { + "reference": "http://hl7.org/fhir/us/sdc/ValueSet/LL629-7", + "display": "USSG-FHT race" + } + }, + { + "linkId": "2.1.1.8", + "definition": "http://loinc.org/fhir/DataElement/54120-1", + "text": "Ethnicity", + "type": "choice", + "repeats": true, + "options": { + "reference": "http://hl7.org/fhir/us/sdc/ValueSet/LL628-9", + "display": "USSG-FHT ethnicity" + } + } + ] + }, + { + "linkId": "2.1.2", + "definition": "http://loinc.org/fhir/DataElement/54117-7", + "text": "This family member's history of disease", + "type": "group", + "repeats": true, + "item": [ + { + "linkId": "2.1.2.1", + "definition": "http://loinc.org/fhir/DataElement/54116-9", + "text": "Disease or Condition", + "type": "choice", + "required": true, + "options": { + "reference": "http://hl7.org/fhir/us/sdc/ValueSet/LL626-3", + "display": "USSG-FHT diseases" + } + }, + { + "linkId": "2.1.2.2", + "definition": "http://loinc.org/fhir/DataElement/54115-1", + "text": "Age at Diagnosis", + "type": "choice", + "options": { + "reference": "http://hl7.org/fhir/us/sdc/ValueSet/LL619-8", + "display": "USSG-FHT age" + } + }, + { + "linkId": "2.1.2.3", + "text": "Mock-up item: Height", + "type": "decimal" + }, + { + "linkId": "2.1.2.4", + "text": "Mock-up item: Weight", + "type": "decimal" + }, + { + "linkId": "2.1.2.5", + "text": "Mock-up item: BMI", + "type": "decimal" + } + ] + } + ] + } + ] + } + ] + } \ No newline at end of file diff --git a/data/SampleData/Stu3/QuestionnaireResponse.json b/data/SampleData/Stu3/QuestionnaireResponse.json new file mode 100644 index 000000000..2fb47263d --- /dev/null +++ b/data/SampleData/Stu3/QuestionnaireResponse.json @@ -0,0 +1,92 @@ +{ + "resourceType": "QuestionnaireResponse", + "id": "3141", + "text": { + "status": "generated", + "div": "
\n
\n            Comorbidity? YES\n              Cardial Comorbidity? YES\n                Angina? YES\n                MI? NO\n              Vascular Comorbidity?\n                (no answers)\n              ...\n            Histopathology\n              Abdominal\n                pT category: 1a\n              ...\n          
\n
" + }, + "identifier": { + "system": "http://example.org/fhir/NamingSystem/questionnaire-ids", + "value": "Q12349876" + }, + "basedOn": [ + { + "reference": "#order" + } + ], + "parent": [ + { + "reference": "Procedure/f201" + } + ], + "status": "completed", + "subject": { + "reference": "#patsub" + }, + "context": { + "reference": "Encounter/example" + }, + "authored": "2013-02-19T14:15:00-05:00", + "author": { + "reference": "#questauth" + }, + "item": [ + { + "linkId": "1", + "item": [ + { + "linkId": "1.1", + "answer": [ + { + "valueCoding": { + "system": "http://cancer.questionnaire.org/system/code/yesno", + "code": "1", + "display": "Yes" + }, + "item": [ + { + "linkId": "1.1.1", + "item": [ + { + "linkId": "1.1.1.1", + "answer": [ + { + "valueCoding": { + "system": "http://cancer.questionnaire.org/system/code/yesno", + "code": "1" + } + } + ] + }, + { + "linkId": "1.1.1.2", + "answer": [ + { + "valueCoding": { + "system": "http://cancer.questionnaire.org/system/code/yesno", + "code": "1" + } + } + ] + }, + { + "linkId": "1.1.1.3", + "answer": [ + { + "valueCoding": { + "system": "http://cancer.questionnaire.org/system/code/yesno", + "code": "0" + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/RelatedPerson.json b/data/SampleData/Stu3/RelatedPerson.json new file mode 100644 index 000000000..96163c077 --- /dev/null +++ b/data/SampleData/Stu3/RelatedPerson.json @@ -0,0 +1,73 @@ +{ + "resourceType": "RelatedPerson", + "id": "benedicte", + "text": { + "status": "generated", + "div": "
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
NameBénédicte du Marché
Address43, Place du Marché Sainte Catherine, 75004 Paris, France
ContactsPhone: +33 (237) 998327
\n
" + }, + "identifier": [ + { + "use": "usual", + "type": { + "text": "INSEE" + }, + "system": "urn:oid:1.2.250.1.61", + "value": "272117510400399" + } + ], + "active": true, + "patient": { + "reference": "Patient/example" + }, + "relationship": { + "coding": [ + { + "system": "http://hl7.org/fhir/v2/0131", + "code": "N" + }, + { + "system": "http://hl7.org/fhir/v3/RoleCode", + "code": "WIFE" + } + ] + }, + "name": [ + { + "family": "du Marché", + "_family": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/humanname-own-prefix", + "valueString": "VV" + } + ] + }, + "given": [ + "Bénédicte" + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "+33 (237) 998327" + } + ], + "gender": "female", + "address": [ + { + "line": [ + "43, Place du Marché Sainte Catherine" + ], + "city": "Paris", + "postalCode": "75004", + "country": "FRA" + } + ], + "photo": [ + { + "contentType": "image/jpeg", + "url": "Binary/f016" + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/RequestGroup.json b/data/SampleData/Stu3/RequestGroup.json new file mode 100644 index 000000000..a039a7fd0 --- /dev/null +++ b/data/SampleData/Stu3/RequestGroup.json @@ -0,0 +1,89 @@ +{ + "resourceType": "RequestGroup", + "id": "example", + "text": { + "status": "generated", + "div": "
Example RequestGroup illustrating related actions to administer medications in sequence with time delay.
" + }, + "identifier": [ + { + "value": "requestgroup-1" + } + ], + "groupIdentifier": { + "system": "http://example.org/treatment-group", + "value": "00001" + }, + "status": "draft", + "intent": "plan", + "priority": "routine", + "subject": { + "reference": "Patient/example" + }, + "context": { + "reference": "Encounter/example" + }, + "authoredOn": "2017-03-06T17:31:00Z", + "author": { + "reference": "Practitioner/1" + }, + "reasonCodeableConcept": { + "text": "Treatment" + }, + "note": [ + { + "text": "Additional notes about the request group" + } + ], + "action": [ + { + "label": "1", + "title": "Administer Medications", + "description": "Administer medications at the appropriate time", + "textEquivalent": "Administer medication 1, followed an hour later by medication 2", + "timingDateTime": "2017-03-06T19:00:00Z", + "participant": [ + { + "reference": "Practitioner/1" + } + ], + "groupingBehavior": "logical-group", + "selectionBehavior": "all", + "requiredBehavior": "must", + "precheckBehavior": "yes", + "cardinalityBehavior": "single", + "action": [ + { + "id": "medication-action-1", + "description": "Administer medication 1", + "type": { + "code": "create" + }, + "resource": { + "reference": "#medicationrequest-1" + } + }, + { + "id": "medication-action-2", + "description": "Administer medication 2", + "relatedAction": [ + { + "actionId": "medication-action-1", + "relationship": "after-end", + "offsetDuration": { + "value": 1, + "unit": "h" + } + } + ], + "type": { + "code": "create" + }, + "resource": { + "reference": "#medicationrequest-2" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/ResearchStudy.json b/data/SampleData/Stu3/ResearchStudy.json new file mode 100644 index 000000000..9370c19e8 --- /dev/null +++ b/data/SampleData/Stu3/ResearchStudy.json @@ -0,0 +1,9 @@ +{ + "resourceType": "ResearchStudy", + "id": "example", + "text": { + "status": "generated", + "div": "
[Put rendering here]
" + }, + "status": "draft" +} \ No newline at end of file diff --git a/data/SampleData/Stu3/ResearchSubject.json b/data/SampleData/Stu3/ResearchSubject.json new file mode 100644 index 000000000..56889c068 --- /dev/null +++ b/data/SampleData/Stu3/ResearchSubject.json @@ -0,0 +1,22 @@ +{ + "resourceType": "ResearchSubject", + "id": "example", + "text": { + "status": "generated", + "div": "
[Put rendering here]
" + }, + "identifier": { + "type": { + "text": "Subject id" + }, + "system": "http://example.org/studysubjectids", + "value": "123" + }, + "status": "candidate", + "study": { + "reference": "ResearchStudy/example" + }, + "individual": { + "reference": "Patient/example" + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/RiskAssessment.json b/data/SampleData/Stu3/RiskAssessment.json new file mode 100644 index 000000000..4c82685bf --- /dev/null +++ b/data/SampleData/Stu3/RiskAssessment.json @@ -0,0 +1,179 @@ +{ + "resourceType": "RiskAssessment", + "id": "genetic", + "text": { + "status": "generated", + "div": "
\n

Probability of developing breast cancer before the age indicated:

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
AgeProbability (%)
current-530.0168
54-570.0368
58-620.0594
63-670.0838
68-720.1089
73-770.1327
78-820.1530
83-870.1663
\n
" + }, + "status": "final", + "method": { + "coding": [ + { + "code": "BRCAPRO" + } + ] + }, + "occurrenceDateTime": "2006-01-13T23:01:00Z", + "basis": [ + { + "reference": "List/prognosis" + } + ], + "prediction": [ + { + "outcome": { + "text": "Breast Cancer" + }, + "probabilityDecimal": 0.000168, + "whenRange": { + "high": { + "value": 53, + "unit": "years", + "system": "http://unitsofmeasure.org", + "code": "a" + } + } + }, + { + "outcome": { + "text": "Breast Cancer" + }, + "probabilityDecimal": 0.000368, + "whenRange": { + "low": { + "value": 54, + "unit": "years", + "system": "http://unitsofmeasure.org", + "code": "a" + }, + "high": { + "value": 57, + "unit": "years", + "system": "http://unitsofmeasure.org", + "code": "a" + } + } + }, + { + "outcome": { + "text": "Breast Cancer" + }, + "probabilityDecimal": 0.000594, + "whenRange": { + "low": { + "value": 58, + "unit": "years", + "system": "http://unitsofmeasure.org", + "code": "a" + }, + "high": { + "value": 62, + "unit": "years", + "system": "http://unitsofmeasure.org", + "code": "a" + } + } + }, + { + "outcome": { + "text": "Breast Cancer" + }, + "probabilityDecimal": 0.000838, + "whenRange": { + "low": { + "value": 63, + "unit": "years", + "system": "http://unitsofmeasure.org", + "code": "a" + }, + "high": { + "value": 67, + "unit": "years", + "system": "http://unitsofmeasure.org", + "code": "a" + } + } + }, + { + "outcome": { + "text": "Breast Cancer" + }, + "probabilityDecimal": 0.001089, + "whenRange": { + "low": { + "value": 68, + "unit": "years", + "system": "http://unitsofmeasure.org", + "code": "a" + }, + "high": { + "value": 72, + "unit": "years", + "system": "http://unitsofmeasure.org", + "code": "a" + } + } + }, + { + "outcome": { + "text": "Breast Cancer" + }, + "probabilityDecimal": 0.001327, + "whenRange": { + "low": { + "value": 73, + "unit": "years", + "system": "http://unitsofmeasure.org", + "code": "a" + }, + "high": { + "value": 77, + "unit": "years", + "system": "http://unitsofmeasure.org", + "code": "a" + } + } + }, + { + "outcome": { + "text": "Breast Cancer" + }, + "probabilityDecimal": 0.001530, + "whenRange": { + "low": { + "value": 78, + "unit": "years", + "system": "http://unitsofmeasure.org", + "code": "a" + }, + "high": { + "value": 82, + "unit": "years", + "system": "http://unitsofmeasure.org", + "code": "a" + } + } + }, + { + "outcome": { + "text": "Breast Cancer" + }, + "probabilityDecimal": 0.001663, + "whenRange": { + "low": { + "value": 83, + "unit": "years", + "system": "http://unitsofmeasure.org", + "code": "a" + }, + "high": { + "value": 88, + "unit": "years", + "system": "http://unitsofmeasure.org", + "code": "a" + } + } + } + ], + "comment": "High degree of certainty" +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Schedule.json b/data/SampleData/Stu3/Schedule.json new file mode 100644 index 000000000..eb718c730 --- /dev/null +++ b/data/SampleData/Stu3/Schedule.json @@ -0,0 +1,55 @@ +{ + "resourceType": "Schedule", + "id": "example", + "text": { + "status": "generated", + "div": "
\n Burgers UMC, South Wing, second floor Physiotherapy Schedule\n
" + }, + "identifier": [ + { + "use": "usual", + "system": "http://example.org/scheduleid", + "value": "45" + } + ], + "active": true, + "serviceCategory": { + "coding": [ + { + "code": "17", + "display": "General Practice" + } + ] + }, + "serviceType": [ + { + "coding": [ + { + "code": "57", + "display": "Immunization" + } + ] + } + ], + "specialty": [ + { + "coding": [ + { + "code": "408480009", + "display": "Clinical immunology" + } + ] + } + ], + "actor": [ + { + "reference": "Location/1", + "display": "Burgers UMC, South Wing, second floor" + } + ], + "planningHorizon": { + "start": "2013-12-25T09:15:00Z", + "end": "2013-12-25T09:30:00Z" + }, + "comment": "The slots attached to this schedule should be specialized to cover immunizations within the clinic" +} \ No newline at end of file diff --git a/data/SampleData/Stu3/SearchParameter.json b/data/SampleData/Stu3/SearchParameter.json new file mode 100644 index 000000000..d0ff5e9ff --- /dev/null +++ b/data/SampleData/Stu3/SearchParameter.json @@ -0,0 +1,67 @@ +{ + "resourceType": "SearchParameter", + "id": "example", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example

url: http://hl7.org/fhir/SearchParameter/example

version: 1

name: ID-SEARCH-PARAMETER

status: draft

experimental: true

date: 23/10/2013

publisher: Health Level Seven International (FHIR Infrastructure)

contact:

useContext:

jurisdiction: United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States', given as 'United States of America (the)'})

purpose: Need to search by identifier for various infrastructural cases - mainly retrieving packages, and matching as part of a chain

code: _id

base: Resource

type: token

derivedFrom: http://hl7.org/fhir/SearchParameter/Resource-id

description: Search by resource identifier - e.g. same as the read interaction, but can return included resources

expression: id

xpath: f:*/f:id

xpathUsage: normal

comparator: eq

" + }, + "url": "http://hl7.org/fhir/SearchParameter/example", + "version": "1", + "name": "ID-SEARCH-PARAMETER", + "status": "draft", + "experimental": true, + "date": "2013-10-23", + "publisher": "Health Level Seven International (FHIR Infrastructure)", + "contact": [ + { + "name": "[string]", + "telecom": [ + { + "system": "url", + "value": "http://hl7.org/fhir" + } + ] + } + ], + "useContext": [ + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "focus" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/variant-state", + "code": "positive" + } + ] + } + } + ], + "jurisdiction": [ + { + "coding": [ + { + "system": "urn:iso:std:iso:3166", + "code": "US", + "display": "United States of America (the)" + } + ] + } + ], + "purpose": "Need to search by identifier for various infrastructural cases - mainly retrieving packages, and matching as part of a chain", + "code": "_id", + "base": [ + "Resource" + ], + "type": "token", + "derivedFrom": "http://hl7.org/fhir/SearchParameter/Resource-id", + "description": "Search by resource identifier - e.g. same as the read interaction, but can return included resources", + "expression": "id", + "xpath": "f:*/f:id", + "xpathUsage": "normal", + "comparator": [ + "eq" + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Sequence.json b/data/SampleData/Stu3/Sequence.json new file mode 100644 index 000000000..3caec926d --- /dev/null +++ b/data/SampleData/Stu3/Sequence.json @@ -0,0 +1,98 @@ +{ + "resourceType": "Sequence", + "id": "fda-vcfeval-comparison", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: fda-vcfeval-comparison

coordinateSystem: 1

patient: Patient/example

ReferenceSeqs

-ReferenceSeqIdStrandWindowStartWindowEnd
*NC_000001.11 (Details : {http://www.ncbi.nlm.nih.gov/nuccore code 'NC_000001.11' = 'NC_000001.11)110453101770080

Variants

-StartEndObservedAlleleReferenceAllele
*1311613117TG

quality

type: indel

standardSequence: file-BkZxBZ00bpJVk2q6x43b1YBx (Details : {https://precision.fda.gov/files/ code 'file-BkZxBZ00bpJVk2q6x43b1YBx' = 'file-BkZxBZ00bpJVk2q6x43b1YBx)

start: 10453

end: 101770080

method: Vcfeval + Hap.py Comparison (Details : {https://precision.fda.gov/apps/ code 'app-BxfGF8j02pBZzZxbzZxP725P' = 'app-BxfGF8j02pBZzZxbzZxP725P)

truthTP: 7749

truthFN: 2554

queryFP: 10670

gtFP: 2186

precision: 0.428005

recall: 0.752111

quality

type: snp

standardSequence: file-BkZxBZ00bpJVk2q6x43b1YBx (Details : {https://precision.fda.gov/files/ code 'file-BkZxBZ00bpJVk2q6x43b1YBx' = 'file-BkZxBZ00bpJVk2q6x43b1YBx)

start: 10453

end: 101770080

method: Vcfeval + Hap.py Comparison (Details : {https://precision.fda.gov/apps/ code 'app-BxfGF8j02pBZzZxbzZxP725P' = 'app-BxfGF8j02pBZzZxbzZxP725P)

truthTP: 92106

truthFN: 1247

queryFP: 21744

gtFP: 493

precision: 0.808602

recall: 0.986642

Repositories

-TypeUrlName
*loginhttps://precision.fda.gov/jobs/job-ByxYPx809jFVy21KJG74Jg3YFDA
" + }, + "coordinateSystem": 1, + "patient": { + "reference": "Patient/example" + }, + "referenceSeq": { + "referenceSeqId": { + "coding": [ + { + "system": "http://www.ncbi.nlm.nih.gov/nuccore", + "code": "NC_000001.11" + } + ] + }, + "strand": 1, + "windowStart": 10453, + "windowEnd": 101770080 + }, + "variant": [ + { + "start": 13116, + "end": 13117, + "observedAllele": "T", + "referenceAllele": "G" + } + ], + "quality": [ + { + "type": "indel", + "standardSequence": { + "coding": [ + { + "system": "https://precision.fda.gov/files/", + "code": "file-BkZxBZ00bpJVk2q6x43b1YBx" + } + ] + }, + "start": 10453, + "end": 101770080, + "method": { + "coding": [ + { + "system": "https://precision.fda.gov/apps/", + "code": "app-BxfGF8j02pBZzZxbzZxP725P" + } + ], + "text": "Vcfeval + Hap.py Comparison" + }, + "truthTP": 7749, + "truthFN": 2554, + "queryFP": 10670, + "gtFP": 2186, + "precision": 0.428005, + "recall": 0.752111 + }, + { + "type": "snp", + "standardSequence": { + "coding": [ + { + "system": "https://precision.fda.gov/files/", + "code": "file-BkZxBZ00bpJVk2q6x43b1YBx" + } + ] + }, + "start": 10453, + "end": 101770080, + "method": { + "coding": [ + { + "system": "https://precision.fda.gov/apps/", + "code": "app-BxfGF8j02pBZzZxbzZxP725P" + } + ], + "text": "Vcfeval + Hap.py Comparison" + }, + "truthTP": 92106, + "truthFN": 1247, + "queryFP": 21744, + "gtFP": 493, + "precision": 0.808602, + "recall": 0.986642 + } + ], + "repository": [ + { + "type": "login", + "url": "https://precision.fda.gov/jobs/job-ByxYPx809jFVy21KJG74Jg3Y", + "name": "FDA" + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Slot.json b/data/SampleData/Stu3/Slot.json new file mode 100644 index 000000000..e3b9a974e --- /dev/null +++ b/data/SampleData/Stu3/Slot.json @@ -0,0 +1,52 @@ +{ + "resourceType": "Slot", + "id": "example", + "text": { + "status": "generated", + "div": "
\n\t\t\t25 Dec 2013 9:15am - 9:30am: Busy Physiotherapy\n\t\t
" + }, + "serviceCategory": { + "coding": [ + { + "code": "17", + "display": "General Practice" + } + ] + }, + "serviceType": [ + { + "coding": [ + { + "code": "57", + "display": "Immunization" + } + ] + } + ], + "specialty": [ + { + "coding": [ + { + "code": "408480009", + "display": "Clinical immunology" + } + ] + } + ], + "appointmentType": { + "coding": [ + { + "system": "http://hl7.org/fhir/v2/0276", + "code": "WALKIN", + "display": "A previously unscheduled walk-in visit" + } + ] + }, + "schedule": { + "reference": "Schedule/example" + }, + "status": "free", + "start": "2013-12-25T09:15:00Z", + "end": "2013-12-25T09:30:00Z", + "comment": "Assessments should be performed before requesting appointments in this slot." +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Specimen.json b/data/SampleData/Stu3/Specimen.json new file mode 100644 index 000000000..133f04a23 --- /dev/null +++ b/data/SampleData/Stu3/Specimen.json @@ -0,0 +1,95 @@ +{ + "resourceType": "Specimen", + "id": "101", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: 101

contained:

identifier: 23234352356

accessionIdentifier: X352356

status: available

type: Venous blood specimen (Details : {SNOMED CT code '122555007' = 'Venous blood specimen', given as 'Venous blood specimen'})

subject: Peter Patient

receivedTime: 04/03/2011 7:03:00 AM

request: ProcedureRequest/example

Collections

-CollectorCollected[x]QuantityMethodBodySite
*Practitioner/example30/05/2011 6:15:00 AM6 mLLine, Venous (Details : {http://hl7.org/fhir/v2/0488 code 'LNV' = 'Line, Venous)Right median cubital vein (Details : {SNOMED CT code '49852007' = 'Median cubital vein', given as 'Structure of median cubital vein (body structure)'})

Containers

-IdentifierDescriptionTypeCapacitySpecimenQuantityAdditive[x]
*48736-15394-75465Green Gel tubeVacutainer (Details )10 mL6 mLid: hep; Lithium/Li Heparin (Details : {http://hl7.org/fhir/v3/EntityCode code 'HEPL' = 'Lithium/Li Heparin)

note: Specimen is grossly lipemic

" + }, + "identifier": [ + { + "system": "http://ehr.acme.org/identifiers/collections", + "value": "23234352356" + } + ], + "accessionIdentifier": { + "system": "http://lab.acme.org/specimens/2011", + "value": "X352356" + }, + "status": "available", + "type": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "122555007", + "display": "Venous blood specimen" + } + ] + }, + "subject": { + "reference": "Patient/example", + "display": "Peter Patient" + }, + "receivedTime": "2011-03-04T07:03:00Z", + "request": [ + { + "reference": "ProcedureRequest/example" + } + ], + "collection": { + "collector": { + "reference": "Practitioner/example" + }, + "collectedDateTime": "2011-05-30T06:15:00Z", + "quantity": { + "value": 6, + "unit": "mL" + }, + "method": { + "coding": [ + { + "system": "http://hl7.org/fhir/v2/0488", + "code": "LNV" + } + ] + }, + "bodySite": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "49852007", + "display": "Structure of median cubital vein (body structure)" + } + ], + "text": "Right median cubital vein" + } + }, + "container": [ + { + "identifier": [ + { + "value": "48736-15394-75465" + } + ], + "description": "Green Gel tube", + "type": { + "text": "Vacutainer" + }, + "capacity": { + "value": 10, + "unit": "mL" + }, + "specimenQuantity": { + "value": 6, + "unit": "mL" + }, + "additiveReference": { + "reference": "#hep" + } + } + ], + "note": [ + { + "text": "Specimen is grossly lipemic" + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/StructureDefinition.json b/data/SampleData/Stu3/StructureDefinition.json new file mode 100644 index 000000000..30005ea20 --- /dev/null +++ b/data/SampleData/Stu3/StructureDefinition.json @@ -0,0 +1,210 @@ +{ + "resourceType": "StructureDefinition", + "id": "Element", + "meta": { + "lastUpdated": "2019-10-24T11:53:00+11:00" + }, + "text": { + "status": "generated", + "div": "
!-- Snipped for Brevity -->
" + }, + "url": "http://hl7.org/fhir/StructureDefinition/Element", + "name": "Element", + "status": "draft", + "date": "2019-10-24T11:53:00+11:00", + "publisher": "HL7 FHIR Standard", + "contact": [ + { + "telecom": [ + { + "system": "url", + "value": "http://hl7.org/fhir" + } + ] + } + ], + "description": "Base StructureDefinition for Element Type", + "fhirVersion": "3.0.2", + "mapping": [ + { + "identity": "rim", + "uri": "http://hl7.org/v3", + "name": "RIM Mapping" + } + ], + "kind": "complex-type", + "abstract": true, + "type": "Element", + "snapshot": { + "element": [ + { + "id": "Element", + "path": "Element", + "short": "Base for all elements", + "definition": "Base definition for all elements in a resource.", + "min": 0, + "max": "*", + "condition": [ + "ele-1" + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() | (children().count() > id.count())", + "xpath": "@value|f:*|h:div" + } + ], + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Element.id", + "path": "Element.id", + "representation": [ + "xmlAttr" + ], + "short": "xml:id (or equivalent in JSON)", + "definition": "unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + "min": 0, + "max": "1", + "type": [ + { + "code": "string" + } + ], + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Element.extension", + "path": "Element.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, + "short": "Additional Content defined by implementations", + "definition": "May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "alias": [ + "extensions", + "user content" + ], + "min": 0, + "max": "*", + "type": [ + { + "code": "Extension" + } + ], + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + } + ] + }, + "differential": { + "element": [ + { + "id": "Element", + "path": "Element", + "short": "Base for all elements", + "definition": "Base definition for all elements in a resource.", + "min": 0, + "max": "*", + "condition": [ + "ele-1" + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() | (children().count() > id.count())", + "xpath": "@value|f:*|h:div" + } + ], + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Element.id", + "path": "Element.id", + "representation": [ + "xmlAttr" + ], + "short": "xml:id (or equivalent in JSON)", + "definition": "unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + "min": 0, + "max": "1", + "type": [ + { + "code": "string" + } + ], + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Element.extension", + "path": "Element.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, + "short": "Additional Content defined by implementations", + "definition": "May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "alias": [ + "extensions", + "user content" + ], + "min": 0, + "max": "*", + "type": [ + { + "code": "Extension" + } + ], + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/StructureMap.json b/data/SampleData/Stu3/StructureMap.json new file mode 100644 index 000000000..e80c07626 --- /dev/null +++ b/data/SampleData/Stu3/StructureMap.json @@ -0,0 +1,190 @@ +{ + "resourceType": "StructureMap", + "id": "supplyrequest-transform", + "text": { + "status": "generated", + "div": "
\nmap "http://hl7.org/fhir/StructureMap/supplyrequest-transform" = supplyRequestTransform\n\nuses "http://hl7.org/fhir/StructureDefinition/ActivityDefinition" as source\nuses "http://hl7.org/fhir/StructureDefinition/SupplyRequest" as target\n\ngroup main\n input "source": ActivityDefinition as source\n input "target": SupplyRequest as target\n\n "status": for source.id make target.status = 'draft'\n "category": for source.id make target.category = 'non-stock'\n "priority": for source.id make target.priority = 'routine'\n "quantity": for source.quantity make target.orderedItem.quantity\n "item": for source.code make target.orderedItem.itemCodeableConcept\n "when": for source.id make target.occurrenceDateTime = Now()\n "authoredOn": for source.id make target.authoredOn = Now()\n
" + }, + "url": "http://hl7.org/fhir/StructureMap/supplyrequest-transform", + "name": "Transform from an ActivityDefinition to a SupplyRequest", + "status": "draft", + "structure": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/activitydefinition", + "mode": "source" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/supplyrequest", + "mode": "target" + } + ], + "group": [ + { + "name": "main", + "typeMode": "none", + "input": [ + { + "name": "source", + "mode": "source" + }, + { + "name": "target", + "mode": "target" + } + ], + "rule": [ + { + "name": "status", + "source": [ + { + "context": "source", + "element": "id", + "variable": "a" + } + ], + "target": [ + { + "context": "target", + "contextType": "variable", + "element": "status", + "transform": "evaluate", + "parameter": [ + { + "valueString": "'draft'" + } + ] + } + ] + }, + { + "name": "category", + "source": [ + { + "context": "source", + "element": "id", + "variable": "a" + } + ], + "target": [ + { + "context": "target", + "contextType": "variable", + "element": "category", + "transform": "evaluate", + "parameter": [ + { + "valueString": "'non-stock'" + } + ] + } + ] + }, + { + "name": "priority", + "source": [ + { + "context": "source", + "element": "id", + "variable": "a" + } + ], + "target": [ + { + "context": "target", + "contextType": "variable", + "element": "priority", + "transform": "evaluate", + "parameter": [ + { + "valueString": "'routine'" + } + ] + } + ] + }, + { + "name": "quantity", + "source": [ + { + "context": "source", + "element": "quantity", + "variable": "a" + } + ], + "target": [ + { + "context": "target", + "contextType": "variable", + "element": "category", + "transform": "copy" + } + ] + }, + { + "name": "item", + "source": [ + { + "context": "source", + "element": "code", + "variable": "a" + } + ], + "target": [ + { + "context": "target", + "contextType": "variable", + "element": "orderedItem.itemCodeableConcept", + "transform": "copy" + } + ] + }, + { + "name": "when", + "source": [ + { + "context": "source", + "element": "id", + "variable": "a" + } + ], + "target": [ + { + "context": "target", + "contextType": "variable", + "element": "occurrenceDateTime", + "transform": "evaluate", + "parameter": [ + { + "valueString": "now()" + } + ] + } + ] + }, + { + "name": "authoredOn", + "source": [ + { + "context": "source", + "element": "id", + "variable": "a" + } + ], + "target": [ + { + "context": "target", + "contextType": "variable", + "element": "authoredOn", + "transform": "evaluate", + "parameter": [ + { + "valueString": "now()" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Subscription.json b/data/SampleData/Stu3/Subscription.json new file mode 100644 index 000000000..bc6d23527 --- /dev/null +++ b/data/SampleData/Stu3/Subscription.json @@ -0,0 +1,33 @@ +{ + "resourceType": "Subscription", + "id": "example-error", + "text": { + "status": "generated", + "div": "
[Put rendering here]
" + }, + "status": "error", + "contact": [ + { + "system": "phone", + "value": "ext 4123" + } + ], + "end": "2021-01-01T00:00:00Z", + "reason": "Monitor new neonatal function", + "criteria": "Observation?code=http://loinc.org|1975-2", + "error": "Socket Error 10060 - can't connect to host", + "channel": { + "type": "rest-hook", + "endpoint": "https://biliwatch.com/customers/mount-auburn-miu/on-result", + "payload": "application/fhir+json", + "header": [ + "Authorization: Bearer secret-token-abc-123" + ] + }, + "tag": [ + { + "system": "http://example.org/fhir/cs/internal", + "code": "bili-done" + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/SupplyRequest.json b/data/SampleData/Stu3/SupplyRequest.json new file mode 100644 index 000000000..bb8ba35ce --- /dev/null +++ b/data/SampleData/Stu3/SupplyRequest.json @@ -0,0 +1,63 @@ +{ + "resourceType": "SupplyRequest", + "id": "simpleorder", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: simpleorder

identifier: Order10284

status: active

category: Central Stock Resupply (Details : {[not stated] code 'central' = 'central', given as 'Central Stock Resupply'})

priority: asap

OrderedItems

-QuantityItem[x]
*10Blood collect tubes blue cap (Details : {[not stated] code 'BlueTubes' = 'BlueTubes', given as 'Blood collect tubes blue cap'})

occurrence: 31/12/2016

authoredOn: 31/12/2016

Requesters

-AgentOnBehalfOf
*Henry SevenPurchasing Dept

supplier: Vendor1

reason: Refill due to low stock (Details : {[not stated] code 'stock_low' = 'stock_low', given as 'Refill due to low stock'})

deliverFrom: Location 1

deliverTo: GoodHealth Clinic Receiving

" + }, + "identifier": { + "value": "Order10284" + }, + "status": "active", + "category": { + "coding": [ + { + "code": "central", + "display": "Central Stock Resupply" + } + ] + }, + "priority": "asap", + "orderedItem": { + "quantity": { + "value": 10 + }, + "itemCodeableConcept": { + "coding": [ + { + "code": "BlueTubes", + "display": "Blood collect tubes blue cap" + } + ] + } + }, + "occurrenceDateTime": "2016-12-31", + "authoredOn": "2016-12-31", + "requester": { + "agent": { + "display": "Henry Seven" + }, + "onBehalfOf": { + "display": "Purchasing Dept" + } + }, + "supplier": [ + { + "display": "Vendor1" + } + ], + "reasonCodeableConcept": { + "coding": [ + { + "code": "stock_low", + "display": "Refill due to low stock" + } + ] + }, + "deliverFrom": { + "display": "Location 1" + }, + "deliverTo": { + "display": "GoodHealth Clinic Receiving" + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/Task.json b/data/SampleData/Stu3/Task.json new file mode 100644 index 000000000..770532a42 --- /dev/null +++ b/data/SampleData/Stu3/Task.json @@ -0,0 +1,102 @@ +{ + "resourceType": "Task", + "id": "example5", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example5

identifier: 20170201-001 (OFFICIAL)

basedOn: General Wellness Careplan

groupIdentifier: G20170201-001 (OFFICIAL)

status: in-progress

businessStatus: specimen received, test in progress (Details )

intent: order

priority: routine

code: Lipid Panel (Details )

description: Create order for getting specimen, Set up inhouse testing, generate order for any sendouts and submit with specimen

focus: Lipid Panel Request

for: Peter James Chalmers

context: Example In-Patient Encounter

executionPeriod: 31/10/2016 8:25:05 AM --> (ongoing)

authoredOn: 31/10/2016 8:25:05 AM

lastModified: 31/10/2016 4:45:05 PM

Requesters

-AgentOnBehalfOf
*Dr Adam CarefulGood Health Clinic

performerType: Performer (Details : {http://hl7.org/fhir/task-performer-type code 'performer' = 'Performer', given as 'Performer'})

owner: Clinical Laboratory @ Acme Hospital

reason: The Task.reason should only be included if there is no Task.focus or if it differs from the reason indicated on the focus (Details )

note: This is an example to demonstrate using task for actioning a procedurerequest and to illustrate how to populate many of the task elements - this is the parent task that will be broken into subtask to grab the specimen and a sendout lab test

Restrictions

-RepetitionsPeriod
*1?? --> 02/11/2016 9:45:05 AM

Outputs

-TypeValue[x]
*collected specimen (Details )Specimen/101
" + }, + "identifier": [ + { + "use": "official", + "system": "http:/goodhealth.org/identifiers", + "value": "20170201-001" + } + ], + "basedOn": [ + { + "display": "General Wellness Careplan" + } + ], + "groupIdentifier": { + "use": "official", + "system": "http:/goodhealth.org/accession/identifiers", + "value": "G20170201-001" + }, + "status": "in-progress", + "businessStatus": { + "text": "specimen received, test in progress" + }, + "intent": "order", + "priority": "routine", + "code": { + "text": "Lipid Panel" + }, + "description": "Create order for getting specimen, Set up inhouse testing, generate order for any sendouts and submit with specimen", + "focus": { + "reference": "ProcedureRequest/lipid", + "display": "Lipid Panel Request" + }, + "for": { + "reference": "Patient/example", + "display": "Peter James Chalmers" + }, + "context": { + "reference": "Encounter/example", + "display": "Example In-Patient Encounter" + }, + "executionPeriod": { + "start": "2016-10-31T08:25:05+10:00" + }, + "authoredOn": "2016-10-31T08:25:05+10:00", + "lastModified": "2016-10-31T16:45:05+10:00", + "requester": { + "agent": { + "reference": "Practitioner/example", + "display": "Dr Adam Careful" + }, + "onBehalfOf": { + "reference": "Organization/2.16.840.1.113883.19.5", + "display": "Good Health Clinic" + } + }, + "performerType": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/task-performer-type", + "code": "performer", + "display": "Performer" + } + ], + "text": "Performer" + } + ], + "owner": { + "reference": "Organization/1832473e-2fe0-452d-abe9-3cdb9879522f", + "display": "Clinical Laboratory @ Acme Hospital" + }, + "reason": { + "text": "The Task.reason should only be included if there is no Task.focus or if it differs from the reason indicated on the focus" + }, + "note": [ + { + "text": "This is an example to demonstrate using task for actioning a procedurerequest and to illustrate how to populate many of the task elements - this is the parent task that will be broken into subtask to grab the specimen and a sendout lab test " + } + ], + "restriction": { + "repetitions": 1, + "period": { + "end": "2016-11-02T09:45:05+10:00" + } + }, + "output": [ + { + "type": { + "text": "collected specimen" + }, + "valueReference": { + "reference": "Specimen/101" + } + } + ] +} \ No newline at end of file diff --git a/data/SampleData/Stu3/TestScript.json b/data/SampleData/Stu3/TestScript.json new file mode 100644 index 000000000..881db9aca --- /dev/null +++ b/data/SampleData/Stu3/TestScript.json @@ -0,0 +1,298 @@ +{ + "resourceType": "TestScript", + "id": "testscript-example", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: testscript-example

url: http://hl7.org/fhir/TestScript/testscript-example

identifier: urn:oid:1.3.6.1.4.1.21367.2005.3.7.9876

version: 1.0

name: TestScript Example

status: draft

experimental: true

date: 18/01/2017

publisher: HL7

contact:

description: TestScript example resource with setup to delete if present and create a new instance of a Patient; and single test definition to read the created Patient with various asserts.

useContext:

jurisdiction: United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States', given as 'United States of America (the)'})

purpose: Patient Conditional Create (Update), Read and Delete Operations

copyright: © HL7.org 2011+

metadata

Links

-UrlDescription
*http://hl7.org/fhir/patient.htmlDemographics and other administrative information about an individual or animal receiving care or other health-related services.

Capabilities

-RequiredDescriptionLinkCapabilities
*truePatient Update, Read and Delete Operationshttp://hl7.org/fhir/http.html#deleteCapabilityStatement/example

fixture

autocreate: false

autodelete: false

resource: Peter Chalmers

fixture

autocreate: false

autodelete: false

resource: Peter Chalmers (minimum)

profile: http://hl7.org/fhir/StructureDefinition/Patient

Variables

-NamePathSourceId
*createResourceIdPatient/idfixture-patient-create

setup

action

Operations

-TypeResourceLabelDescriptionAcceptParams
*Delete (Details: http://hl7.org/fhir/testscript-operation-codes code delete = 'Delete', stated as 'null')PatientSetupDeletePatientExecute a delete operation to insure the patient does not exist on the server.json/${createResourceId}

action

Asserts

-DescriptionDirectionOperatorResponseCode
*Confirm that the returned HTTP status is 200(OK) or 204(No Content).responsein200,204

action

Operations

-TypeResourceLabelDescriptionAcceptContentTypeParamsSourceId
*Update (Details: http://hl7.org/fhir/testscript-operation-codes code update = 'Update', stated as 'null')PatientSetupCreatePatientCreate patient resource on test server using the contents of fixture-patient-createjsonjson/${createResourceId}fixture-patient-create

action

Asserts

-DescriptionDirectionResponseCode
*Confirm that the returned HTTP status is 201(Created).response201

action

Operations

-TypeResourceDescriptionTargetId
*Read (Details: http://hl7.org/fhir/testscript-operation-codes code read = 'Read', stated as 'null')PatientRead the created patient resource on the test server using the id from fixture-patient-create. Verify contents.fixture-patient-create

action

Asserts

-DescriptionDirectionResponse
*Confirm that the returned HTTP status is 200(OK).responseokay

action

Asserts

-DescriptionCompareToSourceIdCompareToSourceExpressionOperator
*Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit compareToSourceId reference to fixture-patient-create used to create the Patient.fixture-patient-createPatient.name.first().familyequals

test

name: Read Patient

description: Read a Patient and validate response.

action

Operations

-
*

action

Asserts

-
*

action

Asserts

-
*

action

Asserts

-
*

action

Asserts

-
*

action

Asserts

-
*

action

Asserts

-
*

action

Asserts

-
*

action

Asserts

-
*

action

Asserts

-
*

teardown

action

Operations

-
*
" + }, + "url": "http://hl7.org/fhir/TestScript/testscript-example", + "identifier": { + "system": "urn:ietf:rfc:3986", + "value": "urn:oid:1.3.6.1.4.1.21367.2005.3.7.9876" + }, + "version": "1.0", + "name": "TestScript Example", + "status": "draft", + "experimental": true, + "date": "2017-01-18", + "publisher": "HL7", + "contact": [ + { + "name": "Support", + "telecom": [ + { + "system": "email", + "value": "support@HL7.org", + "use": "work" + } + ] + } + ], + "description": "TestScript example resource with setup to delete if present and create a new instance of a Patient; and single test definition to read the created Patient with various asserts.", + "useContext": [ + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "focus" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/variant-state", + "code": "positive" + } + ] + } + } + ], + "jurisdiction": [ + { + "coding": [ + { + "system": "urn:iso:std:iso:3166", + "code": "US", + "display": "United States of America (the)" + } + ] + } + ], + "purpose": "Patient Conditional Create (Update), Read and Delete Operations", + "copyright": "© HL7.org 2011+", + "metadata": { + "link": [ + { + "url": "http://hl7.org/fhir/patient.html", + "description": "Demographics and other administrative information about an individual or animal receiving care or other health-related services." + } + ], + "capability": [ + { + "required": true, + "description": "Patient Update, Read and Delete Operations", + "link": [ + "http://hl7.org/fhir/http.html#delete", + "http://hl7.org/fhir/http.html#read", + "http://hl7.org/fhir/http.html#update" + ], + "capabilities": { + "reference": "CapabilityStatement/example" + } + } + ] + }, + "fixture": [ + { + "id": "fixture-patient-create", + "autocreate": false, + "autodelete": false, + "resource": { + "reference": "Patient/example", + "display": "Peter Chalmers" + } + }, + { + "id": "fixture-patient-minimum", + "autocreate": false, + "autodelete": false, + "resource": { + "reference": "Patient/example", + "display": "Peter Chalmers (minimum)" + } + } + ], + "profile": [ + { + "id": "patient-profile", + "reference": "http://hl7.org/fhir/StructureDefinition/Patient" + } + ], + "variable": [ + { + "name": "createResourceId", + "path": "Patient/id", + "sourceId": "fixture-patient-create" + } + ], + "setup": { + "action": [ + { + "operation": { + "type": { + "system": "http://hl7.org/fhir/testscript-operation-codes", + "code": "delete" + }, + "resource": "Patient", + "label": "SetupDeletePatient", + "description": "Execute a delete operation to insure the patient does not exist on the server.", + "accept": "json", + "params": "/${createResourceId}" + } + }, + { + "assert": { + "description": "Confirm that the returned HTTP status is 200(OK) or 204(No Content).", + "direction": "response", + "operator": "in", + "responseCode": "200,204" + } + }, + { + "operation": { + "type": { + "system": "http://hl7.org/fhir/testscript-operation-codes", + "code": "update" + }, + "resource": "Patient", + "label": "SetupCreatePatient", + "description": "Create patient resource on test server using the contents of fixture-patient-create", + "accept": "json", + "contentType": "json", + "params": "/${createResourceId}", + "sourceId": "fixture-patient-create" + } + }, + { + "assert": { + "description": "Confirm that the returned HTTP status is 201(Created).", + "direction": "response", + "responseCode": "201" + } + }, + { + "operation": { + "type": { + "system": "http://hl7.org/fhir/testscript-operation-codes", + "code": "read" + }, + "resource": "Patient", + "description": "Read the created patient resource on the test server using the id from fixture-patient-create. Verify contents.", + "targetId": "fixture-patient-create" + } + }, + { + "assert": { + "description": "Confirm that the returned HTTP status is 200(OK).", + "direction": "response", + "response": "okay" + } + }, + { + "assert": { + "description": "Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit compareToSourceId reference to fixture-patient-create used to create the Patient.", + "compareToSourceId": "fixture-patient-create", + "compareToSourceExpression": "Patient.name.first().family", + "operator": "equals" + } + } + ] + }, + "test": [ + { + "id": "01-ReadPatient", + "name": "Read Patient", + "description": "Read a Patient and validate response.", + "action": [ + { + "operation": { + "type": { + "system": "http://hl7.org/fhir/testscript-operation-codes", + "code": "read" + }, + "resource": "Patient", + "description": "Read the patient resource on the test server using the id from fixture-patient-create. Prevent URL encoding of the request.", + "encodeRequestUrl": false, + "responseId": "fixture-patient-read", + "targetId": "fixture-patient-create" + } + }, + { + "assert": { + "label": "01-ReadPatientOK", + "description": "Confirm that the returned HTTP status is 200(OK).", + "direction": "response", + "response": "okay" + } + }, + { + "assert": { + "description": "Confirm that the returned HTTP Header Last-Modified is present. Warning only as the server may not support versioning.", + "direction": "response", + "headerField": "Last-Modified", + "operator": "notEmpty", + "warningOnly": true + } + }, + { + "assert": { + "description": "Confirm that the returned resource type is Patient.", + "resource": "Patient" + } + }, + { + "assert": { + "description": "Confirm that the returned Patient conforms to the base FHIR specification.", + "validateProfileId": "patient-profile" + } + }, + { + "assert": { + "description": "Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit sourceId reference to read responseId fixture.", + "operator": "equals", + "path": "fhir:Patient/fhir:name/fhir:family/@value", + "sourceId": "fixture-patient-read", + "value": "Chalmers" + } + }, + { + "assert": { + "description": "Confirm that the returned Patient contains the expected given name 'Peter'. Uses explicit sourceId reference to read responseId fixture.", + "operator": "equals", + "path": "fhir:Patient/fhir:name/fhir:given/@value", + "sourceId": "fixture-patient-read", + "value": "Peter" + } + }, + { + "assert": { + "description": "Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit compareToSourceId reference to fixture-patient-create used to create the Patient and implicit reference to read response payload.", + "compareToSourceId": "fixture-patient-create", + "compareToSourcePath": "fhir:Patient/fhir:name/fhir:family/@value", + "operator": "equals", + "path": "fhir:Patient/fhir:name/fhir:family/@value" + } + }, + { + "assert": { + "description": "Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit compareToSourceId reference to fixture-patient-create used to create the Patient and explicit reference to read response payload and default operator of 'equals'.", + "compareToSourceId": "fixture-patient-create", + "compareToSourcePath": "fhir:Patient/fhir:name/fhir:given/@value", + "path": "fhir:Patient/fhir:name/fhir:given/@value", + "sourceId": "fixture-patient-read" + } + }, + { + "assert": { + "description": "Confirm that the returned resource contains the expected retained elements and values. Warning only to provide users with reviewable results.", + "minimumId": "fixture-patient-minimum", + "warningOnly": true + } + } + ] + } + ], + "teardown": { + "action": [ + { + "operation": { + "type": { + "system": "http://hl7.org/fhir/testscript-operation-codes", + "code": "delete" + }, + "resource": "Patient", + "description": "Delete the patient resource on the test server using the id from fixture-patient-create.", + "targetId": "fixture-patient-create" + } + } + ] + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/ValueSet.json b/data/SampleData/Stu3/ValueSet.json new file mode 100644 index 000000000..caf22d6e4 --- /dev/null +++ b/data/SampleData/Stu3/ValueSet.json @@ -0,0 +1,127 @@ +{ + "resourceType": "ValueSet", + "id": "example-expansion", + "meta": { + "profile": [ + "http://hl7.org/fhir/StructureDefinition/shareablevalueset" + ] + }, + "text": { + "status": "generated", + "div": "
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
http://loinc.org14647-2Cholesterol [Moles/volume] in Serum or Plasma
\n\t\t\t\t\t\tAdditional Cholesterol codes\n\t\t\t\t\t
http://loinc.org2093-3Cholesterol [Mass/volume] in Serum or Plasma
http://loinc.org48620-9Cholesterol [Mass/volume] in Serum or Plasma ultracentrifugate
http://loinc.org9342-7Cholesterol [Percentile]
\n\t\t\t\t\t\tCholesterol Ratios\n\t\t\t\t\t
http://loinc.org2096-6Cholesterol/Triglyceride [Mass Ratio] in Serum or Plasma
http://loinc.org35200-5Cholesterol/Triglyceride [Mass Ratio] in Serum or Plasma
http://loinc.org48089-7Cholesterol/Apolipoprotein B [Molar ratio] in Serum or Plasma
http://loinc.org55838-7Cholesterol/Phospholipid [Molar ratio] in Serum or Plasma
\n\t\t
" + }, + "url": "http://hl7.org/fhir/ValueSet/example-expansion", + "version": "20150622", + "name": "LOINC Codes for Cholesterol in Serum/Plasma", + "status": "draft", + "experimental": true, + "date": "2015-06-22", + "publisher": "FHIR Project team", + "contact": [ + { + "telecom": [ + { + "system": "url", + "value": "http://hl7.org/fhir" + } + ] + } + ], + "description": "This is an example value set that includes all the LOINC codes for serum/plasma cholesterol from v2.36.", + "copyright": "This content from LOINC® is copyright © 1995 Regenstrief Institute, Inc. and the LOINC Committee, and available at no cost under the license at http://loinc.org/terms-of-use.", + "compose": { + "include": [ + { + "system": "http://loinc.org", + "filter": [ + { + "property": "parent", + "op": "=", + "value": "LP43571-6" + } + ] + } + ] + }, + "extensible": true, + "expansion": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-expansionSource", + "valueUri": "http://hl7.org/fhir/ValueSet/example-extensional" + } + ], + "identifier": "urn:uuid:42316ff8-2714-4680-9980-f37a6d1a71bc", + "timestamp": "2015-06-22T13:56:07Z", + "total": 8, + "offset": 0, + "parameter": [ + { + "name": "version", + "valueString": "2.50" + } + ], + "contains": [ + { + "system": "http://loinc.org", + "version": "2.50", + "code": "14647-2", + "display": "Cholesterol [Moles/volume] in Serum or Plasma" + }, + { + "abstract": true, + "display": "Cholesterol codes", + "contains": [ + { + "system": "http://loinc.org", + "version": "2.50", + "code": "2093-3", + "display": "Cholesterol [Mass/volume] in Serum or Plasma" + }, + { + "system": "http://loinc.org", + "version": "2.50", + "code": "48620-9", + "display": "Cholesterol [Mass/volume] in Serum or Plasma ultracentrifugate" + }, + { + "system": "http://loinc.org", + "version": "2.50", + "code": "9342-7", + "display": "Cholesterol [Percentile]" + } + ] + }, + { + "abstract": true, + "display": "Cholesterol Ratios", + "contains": [ + { + "system": "http://loinc.org", + "version": "2.50", + "code": "2096-6", + "display": "Cholesterol/Triglyceride [Mass Ratio] in Serum or Plasma" + }, + { + "system": "http://loinc.org", + "version": "2.50", + "code": "35200-5", + "display": "Cholesterol/Triglyceride [Mass Ratio] in Serum or Plasma" + }, + { + "system": "http://loinc.org", + "version": "2.50", + "code": "48089-7", + "display": "Cholesterol/Apolipoprotein B [Molar ratio] in Serum or Plasma" + }, + { + "system": "http://loinc.org", + "version": "2.50", + "code": "55838-7", + "display": "Cholesterol/Phospholipid [Molar ratio] in Serum or Plasma" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/data/SampleData/Stu3/VisionPrescription.json b/data/SampleData/Stu3/VisionPrescription.json new file mode 100644 index 000000000..0c7b9d618 --- /dev/null +++ b/data/SampleData/Stu3/VisionPrescription.json @@ -0,0 +1,95 @@ +{ + "resourceType": "VisionPrescription", + "id": "33124", + "text": { + "status": "generated", + "div": "
Sample Contract Lens prescription
" + }, + "identifier": [ + { + "system": "http://www.happysight.com/prescription", + "value": "15014" + } + ], + "status": "active", + "patient": { + "reference": "Patient/example" + }, + "encounter": { + "reference": "Encounter/f001" + }, + "dateWritten": "2014-06-15", + "prescriber": { + "reference": "Practitioner/example" + }, + "reasonCodeableConcept": { + "coding": [ + { + "system": "http://samplevisionreasoncodes.com", + "code": "myopia" + } + ] + }, + "dispense": [ + { + "product": { + "coding": [ + { + "system": "http://hl7.org/fhir/ex-visionprescriptionproduct", + "code": "contact" + } + ] + }, + "eye": "right", + "cylinder": -2.25, + "axis": 160, + "add": 1.75, + "power": -2.75, + "backCurve": 8.7, + "diameter": 14.0, + "duration": { + "value": 1, + "unit": "month", + "system": "http://unitsofmeasure.org", + "code": "month" + }, + "color": "green", + "brand": "OphthaGuard", + "note": [ + { + "text": "Shade treatment for extreme light sensitivity" + } + ] + }, + { + "product": { + "coding": [ + { + "system": "http://hl7.org/fhir/ex-visionprescriptionproduct", + "code": "contact" + } + ] + }, + "eye": "left", + "cylinder": -3.50, + "axis": 160, + "add": 1.75, + "power": -2.75, + "backCurve": 8.7, + "diameter": 14.0, + "duration": { + "value": 1, + "unit": "month", + "system": "http://unitsofmeasure.org", + "code": "month" + }, + "color": "green", + "brand": "OphthaGuard", + "note": [ + { + "text": "Shade treatment for extreme light sensitivity" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/Templates/Ccda/Entry/AllergiesAndAdverseReaction/_entry_act_entryRelationship.liquid b/data/Templates/Ccda/Entry/AllergiesAndAdverseReaction/_entry_act_entryRelationship.liquid index 86a2134ce..6ac4f8e15 100644 --- a/data/Templates/Ccda/Entry/AllergiesAndAdverseReaction/_entry_act_entryRelationship.liquid +++ b/data/Templates/Ccda/Entry/AllergiesAndAdverseReaction/_entry_act_entryRelationship.liquid @@ -1,4 +1,5 @@ -{% if relationship.observation.templateId | to_json_string | contains: '"2.16.840.1.113883.10.20.22.4.7"' -%} +{% assign templateIdString = relationship.observation.templateId | to_json_string -%} +{% if templateIdString contains '"2.16.840.1.113883.10.20.22.4.7"' -%} {% assign allergyId = relationship.observation | to_json_string | generate_uuid -%} {% include 'Resource/AllergyIntolerance' allergyStatus: statusCode, allergyEntry: relationship.observation, ID: allergyId -%} {% include 'Reference/AllergyIntolerance/Patient' ID: allergyId, REF: fullPatientId -%} diff --git a/data/Templates/Ccda/Entry/Encounter/_entry_encounter_participant.liquid b/data/Templates/Ccda/Entry/Encounter/_entry_encounter_participant.liquid index 9a65f81fd..ba9f01219 100644 --- a/data/Templates/Ccda/Entry/Encounter/_entry_encounter_participant.liquid +++ b/data/Templates/Ccda/Entry/Encounter/_entry_encounter_participant.liquid @@ -1,5 +1,6 @@ {% if participant.typeCode == 'LOC' -%} - {% if participant.participantRole.templateId | to_json_string | contains: '"2.16.840.1.113883.10.20.22.4.32"'-%} + {% assign templateIdString = participant.participantRole.templateId | to_json_string -%} + {% if templateIdString contains '"2.16.840.1.113883.10.20.22.4.32"'-%} {% assign locationId = participant.participantRole | to_json_string | generate_uuid -%} {% include 'Resource/Location' location: participant.participantRole, ID: locationId -%} {% assign fullLocationId = locationId | prepend: 'Location/' -%} diff --git a/data/Templates/Ccda/Entry/HospitalDischargeMedication/_entry_act_entryRelationship_substanceAdministration_entryRelationship.liquid b/data/Templates/Ccda/Entry/HospitalDischargeMedication/_entry_act_entryRelationship_substanceAdministration_entryRelationship.liquid index 1a7c97e1b..17650a94a 100644 --- a/data/Templates/Ccda/Entry/HospitalDischargeMedication/_entry_act_entryRelationship_substanceAdministration_entryRelationship.liquid +++ b/data/Templates/Ccda/Entry/HospitalDischargeMedication/_entry_act_entryRelationship_substanceAdministration_entryRelationship.liquid @@ -1,11 +1,14 @@ {% assign observationId = entryRelationship.observation | to_json_string | generate_uuid -%} -{% if entryRelationship.observation.templateId | to_json_string | contains '"2.16.840.1.113883.10.20.22.4.19"' -%} +{% assign templateIdString = entryRelationship.observation.templateId | to_json_string -%} + +{% if templateIdString contains '"2.16.840.1.113883.10.20.22.4.19"' -%} {% include 'Resource/Condition' conditionEntry: entryRelationship.observation, ID: observationId -%} {% assign fullObservationId = observationId | prepend: 'Condition/' -%} {% include 'Reference/MedicationAdministration/ReasonReference' ID: substanceAdministrationId, REF: fullObservationId-%} {% endif -%} -{% if entryRelationship.supply.templateId | to_json_string | contains '"2.16.840.1.113883.10.20.22.4.17"' -%} +{% assign templateIdString = entryRelationship.supply.templateId | to_json_string -%} +{% if templateIdString contains '"2.16.840.1.113883.10.20.22.4.17"' -%} {% if entryRelationship.supply.author.assignedAuthor -%} {% evaluate practitionerId using 'Utils/GenerateId' obj: entryRelationship.supply.author.assignedAuthor -%} {% include 'Resource/Practitioner', practitioner: entryRelationship.supply.author.assignedAuthor, ID: practitionerId -%} @@ -14,7 +17,7 @@ {% endif -%} {% endif -%} -{% if entryRelationship.supply.templateId | to_json_string | contains '"2.16.840.1.113883.10.20.22.4.18"' -%} +{% if templateIdString contains '"2.16.840.1.113883.10.20.22.4.18"' -%} {% assign supplyId = entryRelationship.supply | to_json_string | generate_uuid -%} {% include 'Resource/MedicationDispense' medicationDispense: entryRelationship.supply, ID: supplyId -%} {% evaluate practitionerId using 'Utils/GenerateId' obj: entryRelationship.supply.performer.assignedEntity -%} diff --git a/data/Templates/Ccda/Entry/Payer/_entry_act_entryRelationship_act_performer.liquid b/data/Templates/Ccda/Entry/Payer/_entry_act_entryRelationship_act_performer.liquid index b09cd14ae..7b0b75f4d 100644 --- a/data/Templates/Ccda/Entry/Payer/_entry_act_entryRelationship_act_performer.liquid +++ b/data/Templates/Ccda/Entry/Payer/_entry_act_entryRelationship_act_performer.liquid @@ -1,4 +1,5 @@ -{% if entry.templateId | to_json_string | contains: '"2.16.840.1.113883.10.20.22.4.87"' -%} +{% assign templateIdString = entry.templateId | to_json_string -%} +{% if templateIdString contains '"2.16.840.1.113883.10.20.22.4.87"' -%} {% if entry.assignedEntity.representedOrganization.name._ -%} {% assign organizationId = entry.assignedEntity.representedOrganization | to_json_string | generate_uuid -%} {% include 'Resource/Organization' organization: entry.assignedEntity.representedOrganization ID: organizationId -%} diff --git a/data/Templates/Ccda/Resource/_AllergyIntolerance.liquid b/data/Templates/Ccda/Resource/_AllergyIntolerance.liquid index 506885437..a987ec1ab 100644 --- a/data/Templates/Ccda/Resource/_AllergyIntolerance.liquid +++ b/data/Templates/Ccda/Resource/_AllergyIntolerance.liquid @@ -31,7 +31,8 @@ "substance":{ {% include 'DataType/CodeableConcept' CodeableConcept: allergyEntry.participant.participantRole.playingEntity.code -%} }, {% endif -%} - {% if r.observation.templateId | to_json_string | contains: '"2.16.840.1.113883.10.20.22.4.9"' -%} + {% assign templateIdString = r.observation.templateId | to_json_string -%} + {% if templateIdString contains '"2.16.840.1.113883.10.20.22.4.9"' -%} "manifestation": [ {% if r.observation.value.translation -%} @@ -42,15 +43,13 @@ ], "onset": "{{ r.observation.effectiveTime.low.value | format_as_date_time }}", {% endif -%} - {% for templateId in r.observation.templateId -%} - {% if templateId.root == "2.16.840.1.113883.10.20.22.4.8" -%} - {% if r.observation.value.translation -%} - "severity":"{{ r.observation.value.translation.displayName | downcase | get_property: 'ValueSet/AllergySeverity' }}", - {% else -%} - "severity":"{{ r.observation.value.displayName | downcase | get_property: 'ValueSet/AllergySeverity' }}", - {% endif -%} + {% if templateIdString contains '"2.16.840.1.113883.10.20.22.4.8"' -%} + {% if r.observation.value.translation -%} + "severity":"{{ r.observation.value.translation.displayName | downcase | get_property: 'ValueSet/AllergySeverity' }}", + {% else -%} + "severity":"{{ r.observation.value.displayName | downcase | get_property: 'ValueSet/AllergySeverity' }}", {% endif -%} - {% endfor -%} + {% endif -%} }, {% endfor -%} diff --git a/data/Templates/Ccda/Resource/_Condition.liquid b/data/Templates/Ccda/Resource/_Condition.liquid index 02b284904..6e9edff61 100644 --- a/data/Templates/Ccda/Resource/_Condition.liquid +++ b/data/Templates/Ccda/Resource/_Condition.liquid @@ -14,9 +14,10 @@ { {% assign entryRelationships = conditionEntry.entryRelationship | to_array -%} {% for entryRelationship in entryRelationships -%} - {% if entryRelationship.observation.templateId | to_json_string | contains: '"2.16.840.1.113883.10.20.22.4.5"' -%} - {% include 'DataType/CodeableConcept' CodeableConcept: entryRelationship.observation.value -%} - {% endif -%} + {% assign templateIdString = entryRelationship.observation.templateId | to_json_string -%} + {% if templateIdString contains '"2.16.840.1.113883.10.20.22.4.5"' -%} + {% include 'DataType/CodeableConcept' CodeableConcept: entryRelationship.observation.value -%} + {% endif -%} {% endfor -%} }, "code": @@ -36,9 +37,10 @@ { {% assign entryRelationships = conditionEntry.entryRelationship | to_array -%} {% for entryRelationship in entryRelationships -%} - {% if entryRelationship.observation.templateId | to_json_string | contains: '"2.16.840.1.113883.10.20.22.4.31"' -%} - {% include 'DataType/CodeableConcept' CodeableConcept: entryRelationship.observation.value.value -%} - {% endif -%} + {% assign templateIdString = entryRelationship.observation.templateId | to_json_string -%} + {% if templateIdString contains '"2.16.840.1.113883.10.20.22.4.31"' -%} + {% include 'DataType/CodeableConcept' CodeableConcept: entryRelationship.observation.value.value -%} + {% endif -%} {% endfor -%} }, }, diff --git a/data/Templates/Ccda/Resource/_FamilyMemberHistory.liquid b/data/Templates/Ccda/Resource/_FamilyMemberHistory.liquid index 5438985cb..eac776411 100644 --- a/data/Templates/Ccda/Resource/_FamilyMemberHistory.liquid +++ b/data/Templates/Ccda/Resource/_FamilyMemberHistory.liquid @@ -27,10 +27,11 @@ "code":{ {% include 'DataType/CodeableConcept' CodeableConcept: component.observation.value -%} }, {% assign entryRelationships = component.observation.entryRelationship | to_array -%} {% for entryRelationship in entryRelationships -%} - {% if entryRelationship.observation.templateId | to_json_string | contains: '"2.16.840.1.113883.10.20.22.4.47"' -%} + {% assign templateIdString = entryRelationship.observation.templateId | to_json_string -%} + {% if templateIdString contains '"2.16.840.1.113883.10.20.22.4.47"' -%} "contributedToDeath":true, {% endif -%} - {% if entryRelationship.observation.templateId | to_json_string | contains: '"2.16.840.1.113883.10.20.22.4.31"' -%} + {% if templateIdString contains '"2.16.840.1.113883.10.20.22.4.31"' -%} {% if entryRelationship.observation.value.value -%} "onsetAge":{ "value": {{entryRelationship.observation.value.value}}, diff --git a/data/Templates/Ccda/Resource/_Immunization.liquid b/data/Templates/Ccda/Resource/_Immunization.liquid index ad27a394d..ba0c56cb0 100644 --- a/data/Templates/Ccda/Resource/_Immunization.liquid +++ b/data/Templates/Ccda/Resource/_Immunization.liquid @@ -13,7 +13,8 @@ {% assign entryRelationships = immunization.entryRelationship | to_array -%} {% for entryRelationship in entryRelationships -%} - {% if entryRelationship.observation.templateId | to_json_string | contains: '"2.16.840.1.113883.10.20.22.4.53"' -%} + {% assign templateIdString = entryRelationship.observation.templateId | to_json_string -%} + {% if templateIdString contains '"2.16.840.1.113883.10.20.22.4.53"' -%} "statusReason": { {% include 'DataType/CodeableConcept' CodeableConcept: entryRelationship.observation.code -%} }, {% endif -%} {% endfor -%} @@ -28,7 +29,8 @@ {% for consumable in consumables -%} {% assign manufacturedProducts = consumable.manufacturedProduct | to_array -%} {% for manufacturedProduct in manufacturedProducts -%} - {% if manufacturedProduct.templateId | to_json_string | contains '"2.16.840.1.113883.10.20.22.4.54"' -%} + {% assign templateIdString = manufacturedProduct.templateId | to_json_string -%} + {% if templateIdString contains '"2.16.840.1.113883.10.20.22.4.54"' -%} {% if manufacturedProduct.manufacturedMaterial.code.translation -%} "vaccineCode":{ {% include 'DataType/CodeableConcept' CodeableConcept: manufacturedProduct.manufacturedMaterial.code.translation -%} }, {% else -%} diff --git a/data/Templates/Stu3ToR4/Account.liquid b/data/Templates/Stu3ToR4/Account.liquid new file mode 100644 index 000000000..3609a67f0 --- /dev/null +++ b/data/Templates/Stu3ToR4/Account.liquid @@ -0,0 +1,10 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "servicePeriod" : {{msg.period | to_json_string | default : '""'}}, + "subject" : [{{msg.subject | to_json_string | default : '""'}}], + "balance" : "", + "active" : "", + "period" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ActivityDefinition.liquid b/data/Templates/Stu3ToR4/ActivityDefinition.liquid new file mode 100644 index 000000000..90d4c0563 --- /dev/null +++ b/data/Templates/Stu3ToR4/ActivityDefinition.liquid @@ -0,0 +1,40 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "author" :[ + {% for c in msg.contributor %} + {% if c.type == 'author' -%} + {% include 'DataType/ContributorToContactDetail' msg : c -%}, + {% endif %} + {% endfor %} + ], + "editor" :[ + {% for c in msg.contributor %} + {% if c.type == "editor" -%} + {% include 'DataType/ContributorToContactDetail' msg : c -%}, + {% endif %} + {% endfor %} + ], + "reviewer" :[ + {% for c in msg.contributor %} + {% if c.type == "reviewer" -%} + {% include 'DataType/ContributorToContactDetail' msg : c -%}, + {% endif %} + {% endfor %} + ], + "endorser" :[ + {% for c in msg.contributor %} + {% if c.type == "endorser" -%} + {% include 'DataType/ContributorToContactDetail' msg : c -%}, + {% endif %} + {% endfor %} + ], + "kind" : {% include 'ActivityDefinition/TranslateKindCode' msg : msg.kind -%}, + "relatedArtifact" : [ {{ msg.relatedArtifact | to_array | batch_render: 'DataType/RelatedArtifact', 'msg' }} ], + "dosage" : [ {{ msg.dosage | to_array | batch_render: 'DataType/Dosage', 'msg' }} ], + "library" : [ {{ msg.library | to_array | batch_render: 'DataType/ReferenceToCanonical', 'msg' }} ], + "transform" : {% include 'DataType/ReferenceToCanonical' msg: msg.transform -%}, + "dynamicValue" : [ {{ msg.dynamicValue | to_array | batch_render: 'ActivityDefinition/ActivityDefinitionDynamicValue', 'msg' }} ], + "contributor" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ActivityDefinition/_ActivityDefinitionDynamicValue.liquid b/data/Templates/Stu3ToR4/ActivityDefinition/_ActivityDefinitionDynamicValue.liquid new file mode 100644 index 000000000..e2af1ae31 --- /dev/null +++ b/data/Templates/Stu3ToR4/ActivityDefinition/_ActivityDefinitionDynamicValue.liquid @@ -0,0 +1,11 @@ +{% mergeDiff msg -%} +{ + "expression" : { + "description" : "{{msg.description}}", + "language" : "{{msg.language}}", + "expression" : "{{msg.expression}}" + }, + "language" : "", + "description" : "" +} +{% endmergeDiff -%} diff --git a/data/Templates/Stu3ToR4/ActivityDefinition/_TranslateKindCode.liquid b/data/Templates/Stu3ToR4/ActivityDefinition/_TranslateKindCode.liquid new file mode 100644 index 000000000..de8a210f4 --- /dev/null +++ b/data/Templates/Stu3ToR4/ActivityDefinition/_TranslateKindCode.liquid @@ -0,0 +1,8 @@ +{% case msg -%} + {% when "ProcedureRequest" -%} + "ServiceRequest" + {% when "ReferralRequest" -%} + "ServiceRequest" + {% else -%} + "{{msg}}" +{% endcase -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Address.liquid b/data/Templates/Stu3ToR4/Address.liquid new file mode 100644 index 000000000..2a9471609 --- /dev/null +++ b/data/Templates/Stu3ToR4/Address.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/AdverseEvent.liquid b/data/Templates/Stu3ToR4/AdverseEvent.liquid new file mode 100644 index 000000000..10e977ab1 --- /dev/null +++ b/data/Templates/Stu3ToR4/AdverseEvent.liquid @@ -0,0 +1,26 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "category" : [ + {%if msg.category -%} + { + "coding" : { + "system" : "http://terminology.hl7.org/CodeSystem/adverse-event-category", + "code" : "{{msg.category}}" + } + }, + {% endif -%} + ], + "event" : {{msg.type | to_json_string | default : '""'}}, + {% if msg.type == null -%} + "event" : { + "text" : "{{msg.description}}" + }, + {% endif -%} + "suspectEntity" : [ {{ msg.suspectEntity | to_array | batch_render: 'AdverseEvent/AdverseEventSuspectEntity', 'msg' }} ], + "eventParticipant" : "", + "reaction" : "", + "type" : "", + "description" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/AdverseEvent/_AdverseEventSuspectEntity.liquid b/data/Templates/Stu3ToR4/AdverseEvent/_AdverseEventSuspectEntity.liquid new file mode 100644 index 000000000..acc310b2d --- /dev/null +++ b/data/Templates/Stu3ToR4/AdverseEvent/_AdverseEventSuspectEntity.liquid @@ -0,0 +1,9 @@ +{% mergeDiff msg -%} +{ + "causalityResult" : "", + "causalityAuthor" : "", + "causalityMethod" : "", + "causalityProductRelatedness" : "", + "causalityAssessment" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/AllergyIntolerance.liquid b/data/Templates/Stu3ToR4/AllergyIntolerance.liquid new file mode 100644 index 000000000..9b5fe350d --- /dev/null +++ b/data/Templates/Stu3ToR4/AllergyIntolerance.liquid @@ -0,0 +1,24 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + {%if msg.clinicalStatus -%} + "clinicalStatus" : { + "coding" : { + "system" : "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical", + "code" : "{{msg.clinicalStatus}}" + } + }, + {% endif -%} + {%if msg.verificationStatus -%} + "verificationStatus" : { + "coding" : { + "system" : "http://terminology.hl7.org/CodeSystem/allergyintolerance-verification", + "code" : "{{msg.verificationStatus}}" + } + }, + {% endif -%} + "recordedDate" : "{{msg.assertedDate | date: "yyyy-MM-ddTHH:mm:ss.fff%K" }}", + "assertedDate" : "" +} +{% endmergeDiff -%} + diff --git a/data/Templates/Stu3ToR4/Appointment.liquid b/data/Templates/Stu3ToR4/Appointment.liquid new file mode 100644 index 000000000..fb63b722e --- /dev/null +++ b/data/Templates/Stu3ToR4/Appointment.liquid @@ -0,0 +1,12 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "serviceCategory" : [{{msg.serviceCategory | to_json_string | default : '""'}}], + "reasonCode" : {{msg.reason | to_json_string | default : '""'}}, + "reasonReference" : {{msg.indication | to_json_string | default : '""'}}, + "basedOn" : {{msg.incomingReferral | to_json_string | default : '""'}}, + "incomingReferral" : "", + "indication" : "", + "reason" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/AppointmentResponse.liquid b/data/Templates/Stu3ToR4/AppointmentResponse.liquid new file mode 100644 index 000000000..2a9471609 --- /dev/null +++ b/data/Templates/Stu3ToR4/AppointmentResponse.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/AuditEvent.liquid b/data/Templates/Stu3ToR4/AuditEvent.liquid new file mode 100644 index 000000000..b8b2af068 --- /dev/null +++ b/data/Templates/Stu3ToR4/AuditEvent.liquid @@ -0,0 +1,9 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "agent" : [ {{ msg.agent | to_array | batch_render: 'AuditEvent/AuditEventAgent', 'msg' }} ], + "source" : {% include 'AuditEvent/AuditEventSource' msg: msg.source -%}, + "entity" : [ {{ msg.entity | to_array | batch_render: 'AuditEvent/AuditEventEntity', 'msg' }} ] +} +{% endmergeDiff -%} + diff --git a/data/Templates/Stu3ToR4/AuditEvent/_AuditEventAgent.liquid b/data/Templates/Stu3ToR4/AuditEvent/_AuditEventAgent.liquid new file mode 100644 index 000000000..9c69ec773 --- /dev/null +++ b/data/Templates/Stu3ToR4/AuditEvent/_AuditEventAgent.liquid @@ -0,0 +1,8 @@ +{% mergeDiff msg -%} +{ + "who" : {{msg.reference | to_json_string | default : '""'}}, + "who" : {% include 'DataType/IdentifierToReference' msg: msg.userId -%}, + "userId" : "", + "reference" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/AuditEvent/_AuditEventEntity.liquid b/data/Templates/Stu3ToR4/AuditEvent/_AuditEventEntity.liquid new file mode 100644 index 000000000..a10edb629 --- /dev/null +++ b/data/Templates/Stu3ToR4/AuditEvent/_AuditEventEntity.liquid @@ -0,0 +1,9 @@ +{% mergeDiff msg -%} +{ + "what" : {% include 'DataType/IdentifierToReference' msg: msg.identifier -%}, + "what" : {{msg.reference | to_json_string | default : '""'}}, + "detail" : [ {{ msg.detail | to_array | batch_render: 'AuditEvent/AuditEventEntityDetail', 'msg' }} ], + "reference" : "", + "identifier" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/AuditEvent/_AuditEventEntityDetail.liquid b/data/Templates/Stu3ToR4/AuditEvent/_AuditEventEntityDetail.liquid new file mode 100644 index 000000000..cad43244f --- /dev/null +++ b/data/Templates/Stu3ToR4/AuditEvent/_AuditEventEntityDetail.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "valueBase64Binary" : "{{msg.value}}", + "value":"" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/AuditEvent/_AuditEventSource.liquid b/data/Templates/Stu3ToR4/AuditEvent/_AuditEventSource.liquid new file mode 100644 index 000000000..6f6429730 --- /dev/null +++ b/data/Templates/Stu3ToR4/AuditEvent/_AuditEventSource.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "observer" : {% include 'DataType/IdentifierToReference' msg: msg.identifier -%}, + "identifier" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Basic.liquid b/data/Templates/Stu3ToR4/Basic.liquid new file mode 100644 index 000000000..2a9471609 --- /dev/null +++ b/data/Templates/Stu3ToR4/Basic.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Binary.liquid b/data/Templates/Stu3ToR4/Binary.liquid new file mode 100644 index 000000000..687ff01f5 --- /dev/null +++ b/data/Templates/Stu3ToR4/Binary.liquid @@ -0,0 +1,7 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "data" : "{{msg.content}}", + "content" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/BodySite.liquid b/data/Templates/Stu3ToR4/BodySite.liquid new file mode 100644 index 000000000..f55a3ff9e --- /dev/null +++ b/data/Templates/Stu3ToR4/BodySite.liquid @@ -0,0 +1,10 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "resourceType":"BodyStructure", + "location" : {{msg.code | to_json_string | default : '""'}}, + "locationQualifier" : {{msg.qualifier | to_json_string | default : '""'}}, + "qualifier" : "", + "code" : "" +} +{% endmergeDiff -%} diff --git a/data/Templates/Stu3ToR4/Bundle.liquid b/data/Templates/Stu3ToR4/Bundle.liquid new file mode 100644 index 000000000..896e06892 --- /dev/null +++ b/data/Templates/Stu3ToR4/Bundle.liquid @@ -0,0 +1,7 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "entry" : [ {{ msg.entry | to_array | batch_render: 'Bundle/Entry', 'msg' }} ], + "signature" : {% include 'DataType/Signature' msg : msg.signature -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Bundle/_Entry.liquid b/data/Templates/Stu3ToR4/Bundle/_Entry.liquid new file mode 100644 index 000000000..6354c2d93 --- /dev/null +++ b/data/Templates/Stu3ToR4/Bundle/_Entry.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "resource": {% include 'Resource' msg : msg.resource -%}, + "response": {% include 'Bundle/Response' msg: msg.response -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Bundle/_Response.liquid b/data/Templates/Stu3ToR4/Bundle/_Response.liquid new file mode 100644 index 000000000..2cdf682f0 --- /dev/null +++ b/data/Templates/Stu3ToR4/Bundle/_Response.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "outcome": {% include 'Resource' msg : msg.resource -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/CapabilityStatement.liquid b/data/Templates/Stu3ToR4/CapabilityStatement.liquid new file mode 100644 index 000000000..3f05f9a6b --- /dev/null +++ b/data/Templates/Stu3ToR4/CapabilityStatement.liquid @@ -0,0 +1,22 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.acceptUnknown -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-CapabilityStatement.acceptUnknown", + "valueCode" : "{{msg.acceptUnknown}}" + }, + {% endif -%} + ], + "fhirVersion": "4.0.1", + "profile" : "", + "rest" : [ {{ msg.rest | to_array | batch_render: 'CapabilityStatement/Rest', 'msg' }} ], + "messaging" : [ {{ msg.messaging | to_array | batch_render: 'CapabilityStatement/Messaging', 'msg' }} ], + "document" : [ {{ msg.document | to_array | batch_render: 'CapabilityStatement/Document', 'msg' }} ], + "acceptUnknown" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/CapabilityStatement/_Document.liquid b/data/Templates/Stu3ToR4/CapabilityStatement/_Document.liquid new file mode 100644 index 000000000..9caf4f24b --- /dev/null +++ b/data/Templates/Stu3ToR4/CapabilityStatement/_Document.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "profile" : {% include 'DataType/ReferenceToCanonical' msg: msg.profile -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/CapabilityStatement/_Messaging.liquid b/data/Templates/Stu3ToR4/CapabilityStatement/_Messaging.liquid new file mode 100644 index 000000000..55f7af989 --- /dev/null +++ b/data/Templates/Stu3ToR4/CapabilityStatement/_Messaging.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "supportedMessage" : [ {{ msg.supportedMessage | to_array | batch_render: 'CapabilityStatement/SupportedMessage', 'msg' }} ], + "event" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/CapabilityStatement/_Resource.liquid b/data/Templates/Stu3ToR4/CapabilityStatement/_Resource.liquid new file mode 100644 index 000000000..9caf4f24b --- /dev/null +++ b/data/Templates/Stu3ToR4/CapabilityStatement/_Resource.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "profile" : {% include 'DataType/ReferenceToCanonical' msg: msg.profile -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/CapabilityStatement/_Rest.liquid b/data/Templates/Stu3ToR4/CapabilityStatement/_Rest.liquid new file mode 100644 index 000000000..6dedca6a3 --- /dev/null +++ b/data/Templates/Stu3ToR4/CapabilityStatement/_Rest.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "security" : {% include 'CapabilityStatement/Security' msg: msg.security -%}, + "resource" : [ {{ msg.resource | to_array | batch_render: 'CapabilityStatement/Resource', 'msg' }} ] +} +{% endmergeDiff -%} diff --git a/data/Templates/Stu3ToR4/CapabilityStatement/_Security.liquid b/data/Templates/Stu3ToR4/CapabilityStatement/_Security.liquid new file mode 100644 index 000000000..48be81e48 --- /dev/null +++ b/data/Templates/Stu3ToR4/CapabilityStatement/_Security.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "certificate" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/CapabilityStatement/_SupportedMessage.liquid b/data/Templates/Stu3ToR4/CapabilityStatement/_SupportedMessage.liquid new file mode 100644 index 000000000..581796348 --- /dev/null +++ b/data/Templates/Stu3ToR4/CapabilityStatement/_SupportedMessage.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "definition" : {% include 'DataType/ReferenceToCanonical' msg: msg.definition -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/CarePlan.liquid b/data/Templates/Stu3ToR4/CarePlan.liquid new file mode 100644 index 000000000..8b3ffe3af --- /dev/null +++ b/data/Templates/Stu3ToR4/CarePlan.liquid @@ -0,0 +1,11 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "instantiatesCanonical" : {% include 'DataType/ReferenceToCanonical' msg: msg.definition -%}, + "encounter" : {{msg.context | to_json_string | default : '""'}}, + "author" : {{msg.author[0] | to_json_string | default : '""'}}, + "activity" : [ {{ msg.activity | to_array | batch_render: 'CarePlan/Activity', 'msg' }} ], + "context" : "", + "definition" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/CarePlan/_Activity.liquid b/data/Templates/Stu3ToR4/CarePlan/_Activity.liquid new file mode 100644 index 000000000..6ef760087 --- /dev/null +++ b/data/Templates/Stu3ToR4/CarePlan/_Activity.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "detail" : {% include 'CarePlan/Detail' msg: msg.detail -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/CarePlan/_Detail.liquid b/data/Templates/Stu3ToR4/CarePlan/_Detail.liquid new file mode 100644 index 000000000..623d5ccff --- /dev/null +++ b/data/Templates/Stu3ToR4/CarePlan/_Detail.liquid @@ -0,0 +1,25 @@ +{% mergeDiff msg -%} +{ + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.category -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-CarePlan.activity.detail.category", + "valueCodeableConcept" : {{msg.category | to_json_string | default : '""' }} + }, + {% endif -%} + ], + "instantiatesCanonical" : [ + {{msg.definition | to_json_string | default : '""'}} + ], + "statusReason" : { + "text" : "{{msg.statusReason}}" + }, + "doNotPerform" : "{{msg.prohibited}}", + "prohibited" : "", + "definition" : "", + "category" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/CareTeam.liquid b/data/Templates/Stu3ToR4/CareTeam.liquid new file mode 100644 index 000000000..332a4a257 --- /dev/null +++ b/data/Templates/Stu3ToR4/CareTeam.liquid @@ -0,0 +1,8 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "encounter" : {{msg.context | to_json_string | default : '""'}}, + "participant" : [ {{ msg.participant | to_array | batch_render: 'CareTeam/Participant', 'msg' }} ], + "context" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/CareTeam/_Participant.liquid b/data/Templates/Stu3ToR4/CareTeam/_Participant.liquid new file mode 100644 index 000000000..d993a583e --- /dev/null +++ b/data/Templates/Stu3ToR4/CareTeam/_Participant.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "role" : [{{msg.role | to_json_string | default:'""' }}] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ChargeItem.liquid b/data/Templates/Stu3ToR4/ChargeItem.liquid new file mode 100644 index 000000000..1c203c040 --- /dev/null +++ b/data/Templates/Stu3ToR4/ChargeItem.liquid @@ -0,0 +1,11 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "definitionUri" : {{msg.definition | to_json_string | default : '""'}}, + "performer" : [ {{ msg.participant | to_array | batch_render: 'ChargeItem/ChargeItemPerformer', 'msg' }} ], + "priceOverride" : {% include 'DataType/Money' msg: msg.priceOverride -%}, + "participant" : "", + "definition" : "" +} +{% endmergeDiff -%} + diff --git a/data/Templates/Stu3ToR4/ChargeItem/_ChargeItemPerformer.liquid b/data/Templates/Stu3ToR4/ChargeItem/_ChargeItemPerformer.liquid new file mode 100644 index 000000000..aa9e1b726 --- /dev/null +++ b/data/Templates/Stu3ToR4/ChargeItem/_ChargeItemPerformer.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "function" : {{msg.role | to_json_string | default : '""'}}, + "role" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Claim.liquid b/data/Templates/Stu3ToR4/Claim.liquid new file mode 100644 index 000000000..a1856ed6b --- /dev/null +++ b/data/Templates/Stu3ToR4/Claim.liquid @@ -0,0 +1,68 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "use" : {% include 'Claim/TranslateUseCode' msg : msg.use -%}, + {% if msg.provider == null -%} + "provider" : {{msg.organization | to_json_string | default : '""'}}, + {% endif -%} + "payee" : + {% mergeDiff msg.payee %} + { + "resourceType" : "" + } + {% endmergeDiff %}, + "supportingInfo" : {{msg.information | to_json_string | default : '""'}}, + "item" : [ + {% for i in msg.item %} + {% mergeDiff i %} + { + "careTeamSequence" : {{i.careTeamLinkId | to_json_string | default : '""'}}, + "diagnosisSequence" : {{i.diagnosisLinkId | to_json_string | default : '""'}}, + "procedureSequence" : {{i.procedureLinkId | to_json_string | default : '""'}}, + "informationSequence" : {{i.informationLinkId | to_json_string | default : '""'}}, + "productOrService" : {{i.service | to_json_string | default : '""'}}, + "diagnosisCodeableConcept" : {{i.locationCodeableConcept | to_json_string | default : '""'}}, + "careTeamLinkId" : "", + "diagnosisLinkId" : "", + "procedureLinkId" : "", + "informationLinkId" : "", + "service": "", + "locationCodeableConcept" : "", + "unitPrice" : {% include 'DataType/Money' msg: i.unitPrice -%}, + "net" : {% include 'DataType/Money' msg: i.net -%}, + "detail" : [ + {% for d in i.detail %} + {% mergeDiff d %} + { + "productOrService" : {{d.service | to_json_string | default : '""'}}, + "unitPrice" : {% include 'DataType/Money' msg: d.unitPrice -%}, + "net" : {% include 'DataType/Money' msg: d.net -%}, + "service": "", + "subDetail" : [ + {% for s in d.subDetail %} + {% mergeDiff s %} + { + "productOrService" : {{s.service | to_json_string | default : '""'}}, + "unitPrice" : {% include 'DataType/Money' msg: s.unitPrice -%}, + "net" : {% include 'DataType/Money' msg: s.net -%}, + "service": "" + } + {% endmergeDiff %}, + {% endfor %} + ] + } + {% endmergeDiff %}, + {% endfor %} + ] + } + {% endmergeDiff %}, + {% endfor %} + ], + "total" : {% include 'DataType/Money' msg: msg.total -%}, + "hospitalization" : "", + "employmentImpacted" : "", + "information" : "", + "organization" : "" +} +{% endmergeDiff -%} + diff --git a/data/Templates/Stu3ToR4/Claim/_TranslateUseCode.liquid b/data/Templates/Stu3ToR4/Claim/_TranslateUseCode.liquid new file mode 100644 index 000000000..aa04efc2e --- /dev/null +++ b/data/Templates/Stu3ToR4/Claim/_TranslateUseCode.liquid @@ -0,0 +1,8 @@ +{% case msg -%} + {% when "complete" -%} + "claim" + {% when "proposed" -%} + "preauthorization" + {% when "exploratory" -%} + "predetermination" +{% endcase -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ClaimResponse.liquid b/data/Templates/Stu3ToR4/ClaimResponse.liquid new file mode 100644 index 000000000..c9796b721 --- /dev/null +++ b/data/Templates/Stu3ToR4/ClaimResponse.liquid @@ -0,0 +1,32 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "requestor" : {{msg.requestProvider | to_json_string | default : '""'}}, + {% assign value = msg.outcome.coding[0].code %} + {% if value == 'queued' or value =='complete' or value =='error' or value == 'partial' -%} + "outcome" : "{{value}}", + {% else %} + "outcome" : "", + {% endif -%} + "item" : [ {{ msg.item | to_array | batch_render: 'ClaimResponse/ClaimResponseItem', 'msg' }} ], + "addItem" : [ {{ msg.addItem | to_array | batch_render: 'ClaimResponse/ClaimResponseAddItem', 'msg' }} ], + "error" : [ {{ msg.error | to_array | batch_render: 'ClaimResponse/ClaimResponseError', 'msg' }} ], + "total" : [ + {% include 'ClaimResponse/ClaimResponseTotalCost' msg: msg.totalCost -%}, + {% include 'ClaimResponse/ClaimResponseTotalBenefit' msg: msg.totalBenefit -%} + ], + "payment" : {% include 'ClaimResponse/ClaimResponsePayment' msg: msg.payment -%}, + "fundsReserve" : { + "coding" : {{msg.reserved | to_json_string | default : '""' }} + }, + "form" : {% include 'DataType/CodeableConceptToAttachment' msg: msg.form -%}, + "processNote" : [ {{ msg.processNote | to_array | batch_render: 'ClaimResponse/ClaimResponseProcessNote', 'msg' }} ], + "insurance" : [ {{ msg.insurance | to_array | batch_render: 'ClaimResponse/ClaimResponseInsurance', 'msg' }} ], + "totalBenefit" : "", + "unallocDeductable" : "", + "totalCost" : "", + "requestOrganization" : "", + "requestProvider" : "", + "reserved" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseAddItem.liquid b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseAddItem.liquid new file mode 100644 index 000000000..52b5b80ea --- /dev/null +++ b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseAddItem.liquid @@ -0,0 +1,12 @@ +{% mergeDiff msg -%} +{ + "itemSequence" : "{{msg.sequenceLinkId}}", + "adjudication" : [ {{ msg.adjudication | to_array | batch_render: '_ClaimResponseItemAdjudication', 'msg' }} ], + "detail" : [ {{ msg.detail | to_array | batch_render: 'ClaimResponse/ClaimResponseAddItemDetail', 'msg' }} ], + "fee" : "", + "service" : "", + "category" : "", + "revenue" : "", + "sequenceLinkId" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseAddItemDetail.liquid b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseAddItemDetail.liquid new file mode 100644 index 000000000..a86c6e0ae --- /dev/null +++ b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseAddItemDetail.liquid @@ -0,0 +1,9 @@ +{% mergeDiff msg -%} +{ + "adjudication" : [ {{ msg.adjudication | to_array | batch_render: '_ClaimResponseItemAdjudication', 'msg' }} ], + "fee" : "", + "service" : "", + "category" : "", + "revenue" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseError.liquid b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseError.liquid new file mode 100644 index 000000000..7803859df --- /dev/null +++ b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseError.liquid @@ -0,0 +1,10 @@ +{% mergeDiff msg -%} +{ + "itemSequence" : "{{msg.sequenceLinkId}}", + "detailSequence" : "{{msg.detailSequenceLinkId}}", + "subDetailSequence" : "{{msg.subdetailSequenceLinkId}}", + "subdetailSequenceLinkId" : "", + "detailSequenceLinkId" : "", + "sequenceLinkId" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseInsurance.liquid b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseInsurance.liquid new file mode 100644 index 000000000..34e955df2 --- /dev/null +++ b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseInsurance.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "preAuthRef" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseItem.liquid b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseItem.liquid new file mode 100644 index 000000000..e26496a48 --- /dev/null +++ b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseItem.liquid @@ -0,0 +1,8 @@ +{% mergeDiff msg -%} +{ + "itemSequence" : "{{msg.sequenceLinkId}}", + "adjudication" : [ {{ msg.adjudication | to_array | batch_render: 'ClaimResponse/ClaimResponseItemAdjudication', 'msg' }} ], + "detail" : [ {{ msg.detail | to_array | batch_render: 'ClaimResponse/ClaimResponseItemDetail', 'msg' }} ], + "sequenceLinkId" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseItemAdjudication.liquid b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseItemAdjudication.liquid new file mode 100644 index 000000000..58ce319e9 --- /dev/null +++ b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseItemAdjudication.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "amount" : {% include 'DataType/Money' msg: msg.amount -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseItemDetail.liquid b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseItemDetail.liquid new file mode 100644 index 000000000..26fda85d3 --- /dev/null +++ b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseItemDetail.liquid @@ -0,0 +1,8 @@ +{% mergeDiff msg -%} +{ + "detailSequence" : "{{msg.sequenceLinkId}}", + "adjudication" : [ {{ msg.adjudication | to_array | batch_render: '_ClaimResponseItemAdjudication', 'msg' }} ], + "subDetail" : [ {{ msg.subDetail | to_array | batch_render: 'ClaimResponse/ClaimResponseItemDetailSubDetail', 'msg' }} ], + "sequenceLinkId" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseItemDetailSubDetail.liquid b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseItemDetailSubDetail.liquid new file mode 100644 index 000000000..17c4c527c --- /dev/null +++ b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseItemDetailSubDetail.liquid @@ -0,0 +1,7 @@ +{% mergeDiff msg -%} +{ + "subDetailSequence" : "{{msg.sequenceLinkId}}", + "adjudication" : [ {{ msg.adjudication | to_array | batch_render: '_ClaimResponseItemAdjudication', 'msg' }} ], + "sequenceLinkId" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponsePayment.liquid b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponsePayment.liquid new file mode 100644 index 000000000..e89086eb0 --- /dev/null +++ b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponsePayment.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "adjustment" : {% include 'DataType/Money' msg: msg.adjustment -%}, + "amount" : {% include 'DataType/Money' msg: msg.amount -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseProcessNote.liquid b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseProcessNote.liquid new file mode 100644 index 000000000..5c111b5ed --- /dev/null +++ b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseProcessNote.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "type" : {% include 'DataType/CodeableConceptToCode' msg: msg.type -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseTotalBenefit.liquid b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseTotalBenefit.liquid new file mode 100644 index 000000000..34e4670c3 --- /dev/null +++ b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseTotalBenefit.liquid @@ -0,0 +1,10 @@ +{ + "category" : { + "text" : "Benefit Amount", + "coding" : { + "code" : "benefit", + "system" : "http://terminology.hl7.org/CodeSystem/adjudication" + } + }, + "amount" : {% include 'DataType/Money' msg: msg -%} +} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseTotalCost.liquid b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseTotalCost.liquid new file mode 100644 index 000000000..5a529860e --- /dev/null +++ b/data/Templates/Stu3ToR4/ClaimResponse/_ClaimResponseTotalCost.liquid @@ -0,0 +1,11 @@ +{ + "category" : { + "text" : "Submitted Amount", + "coding" : { + "code" : "submitted", + "system" : "http://terminology.hl7.org/CodeSystem/adjudication" + } + }, + "amount" : {% include 'DataType/Money' msg: msg -%} +} + diff --git a/data/Templates/Stu3ToR4/ClinicalImpression.liquid b/data/Templates/Stu3ToR4/ClinicalImpression.liquid new file mode 100644 index 000000000..ff3336390 --- /dev/null +++ b/data/Templates/Stu3ToR4/ClinicalImpression.liquid @@ -0,0 +1,20 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "status" : {% include 'ClinicalImpression/TranslateStatusCode' msg : msg.status -%}, + "encounter" : {{msg.context | to_json_string | default : '""'}}, + "context" : "", + "extension":[ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {% if msg.action -%} + { + "url" : "http://hl7.org/fhir/3.0/StructureDefinition/extension-ClinicalImpression.action", + "valueReference" : {{msg.action | to_json_string | default : '""' }} + } + {% endif -%} + ], + "action" : "" +} +{% endmergeDiff -%} diff --git a/data/Templates/Stu3ToR4/ClinicalImpression/_TranslateStatusCode.liquid b/data/Templates/Stu3ToR4/ClinicalImpression/_TranslateStatusCode.liquid new file mode 100644 index 000000000..f67a2960d --- /dev/null +++ b/data/Templates/Stu3ToR4/ClinicalImpression/_TranslateStatusCode.liquid @@ -0,0 +1,8 @@ +{% case msg -%} + {% when "draft" -%} + "in-progress" + {% when "completed" -%} + "completed" + {% when "entered-in-error" -%} + "entered-in-error" +{% endcase -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/CodeSystem.liquid b/data/Templates/Stu3ToR4/CodeSystem.liquid new file mode 100644 index 000000000..6ef6ab0d7 --- /dev/null +++ b/data/Templates/Stu3ToR4/CodeSystem.liquid @@ -0,0 +1,8 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "identifier" : [ + {{msg.identifier | to_json_string | default : '""'}} + ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Communication.liquid b/data/Templates/Stu3ToR4/Communication.liquid new file mode 100644 index 000000000..2065fd083 --- /dev/null +++ b/data/Templates/Stu3ToR4/Communication.liquid @@ -0,0 +1,30 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "instantiatesCanonical" : {{msg.definition | to_json_string | default : '""'}}, + {% if msg.notDone -%} + "status" : "not-done", + {% else %} + "status" : "{{msg.status}}", + {% endif -%} + "statusReason" : {{msg.notDoneReason | to_json_string | default : '""'}}, + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {% for t in msg.topic -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-Communication.topic", + "valueReference" : {{ t | to_json_string | default : '""' }} + }, + {% endfor -%} + ], + "notDoneReason" : "", + "encounter" : {{msg.context | to_json_string | default : '""'}}, + "notDone" : "", + "definition" : "", + "topic" : "", + "context" : "" +} +{% endmergeDiff -%} + diff --git a/data/Templates/Stu3ToR4/CommunicationRequest.liquid b/data/Templates/Stu3ToR4/CommunicationRequest.liquid new file mode 100644 index 000000000..d2fc0f128 --- /dev/null +++ b/data/Templates/Stu3ToR4/CommunicationRequest.liquid @@ -0,0 +1,21 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "about" : {{msg.topic | to_json_string | default : '""'}}, + "encounter" : {{msg.context | to_json_string | default : '""'}}, + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.requester.onBehalfOf -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-CommunicationRequest.requester.onBehalfOf", + "valueReference" : {{msg.requester.onBehalfOf | to_json_string | default : '""' }} + }, + {% endif -%} + ], + "requester" : {{msg.requester.agent | to_json_string | default : '""'}}, + "context" : "", + "topic" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/CompartmentDefinition.liquid b/data/Templates/Stu3ToR4/CompartmentDefinition.liquid new file mode 100644 index 000000000..5aea19d3b --- /dev/null +++ b/data/Templates/Stu3ToR4/CompartmentDefinition.liquid @@ -0,0 +1,14 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "jurisdiction" : "", + "title" : "", + "resource" : [ + {% for r in mag.resource -%} + {% if r.code != "DeviceComponent" and r.code != "ImagingManifest" and r.code != "ServiceDefinition" -%} + {% include 'CompartmentDefinition/_CompartmentDefinitionResource' msg : r -%}, + {% endif -%} + {% endfor -%} + ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/CompartmentDefinition/_CompartmentDefinitionResource.liquid b/data/Templates/Stu3ToR4/CompartmentDefinition/_CompartmentDefinitionResource.liquid new file mode 100644 index 000000000..7b412cb50 --- /dev/null +++ b/data/Templates/Stu3ToR4/CompartmentDefinition/_CompartmentDefinitionResource.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "code" : {% include 'DataType/ResourceMapping' msg : msg.code -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Composition.liquid b/data/Templates/Stu3ToR4/Composition.liquid new file mode 100644 index 000000000..f544f8454 --- /dev/null +++ b/data/Templates/Stu3ToR4/Composition.liquid @@ -0,0 +1,10 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "category" : [ + {{msg.class | to_json_string | default : '""'}} + ], + "class" : "", + "attester": [{{msg.attester | to_array | batch_render : 'Composition/Attester', 'msg'}}] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Composition/_Attester.liquid b/data/Templates/Stu3ToR4/Composition/_Attester.liquid new file mode 100644 index 000000000..0b1855eaf --- /dev/null +++ b/data/Templates/Stu3ToR4/Composition/_Attester.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "mode" : "{{msg.mode[0]}}" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ConceptMap.liquid b/data/Templates/Stu3ToR4/ConceptMap.liquid new file mode 100644 index 000000000..0d5ebad8d --- /dev/null +++ b/data/Templates/Stu3ToR4/ConceptMap.liquid @@ -0,0 +1,8 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "sourceCanonical" : {% include 'DataType/ReferenceToCanonical' msg: msg.sourceReference -%}, + "targetCanonical" : {% include 'DataType/ReferenceToCanonical' msg: msg.targetReference -%}, + "group" : [ {{ msg.group | to_array | batch_render: 'ConceptMap/TheGroup', 'msg' }} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ConceptMap/_Element.liquid b/data/Templates/Stu3ToR4/ConceptMap/_Element.liquid new file mode 100644 index 000000000..026753c38 --- /dev/null +++ b/data/Templates/Stu3ToR4/ConceptMap/_Element.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "target" : [ {{ msg.target | to_array | batch_render: 'ConceptMap/TheTarget', 'msg' }} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ConceptMap/_Qualifier.liquid b/data/Templates/Stu3ToR4/ConceptMap/_Qualifier.liquid new file mode 100644 index 000000000..979365d6e --- /dev/null +++ b/data/Templates/Stu3ToR4/ConceptMap/_Qualifier.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "value" : "{{msg.code}}", + "code" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ConceptMap/_TheGroup.liquid b/data/Templates/Stu3ToR4/ConceptMap/_TheGroup.liquid new file mode 100644 index 000000000..b45351bcc --- /dev/null +++ b/data/Templates/Stu3ToR4/ConceptMap/_TheGroup.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "element" : [ {{ msg.element | to_array | batch_render: 'ConceptMap/Element', 'msg' }} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ConceptMap/_TheTarget.liquid b/data/Templates/Stu3ToR4/ConceptMap/_TheTarget.liquid new file mode 100644 index 000000000..5b706994a --- /dev/null +++ b/data/Templates/Stu3ToR4/ConceptMap/_TheTarget.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "dependsOn" : [ {{ msg.dependsOn | to_array | batch_render: 'ConceptMap/Qualifier', 'msg' }} ], + "product" : [ {{ msg.product | to_array | batch_render: 'ConceptMap/Qualifier', 'msg' }} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Condition.liquid b/data/Templates/Stu3ToR4/Condition.liquid new file mode 100644 index 000000000..863eac1ed --- /dev/null +++ b/data/Templates/Stu3ToR4/Condition.liquid @@ -0,0 +1,27 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + {%if msg.clinicalStatus -%} + "clinicalStatus" : { + "coding" : { + "system" : "http://terminology.hl7.org/CodeSystem/condition-clinical", + "code" : "{{msg.clinicalStatus}}" + } + }, + {% endif -%} + {%if msg.verificationStatus -%} + "verificationStatus" : { + "coding" : { + "system" : "http://terminology.hl7.org/CodeSystem/condition-ver-status", + "code" : "{{msg.verificationStatus}}" + } + }, + {% endif -%} + "abatementBoolean" : "", + "stage" : [{{msg.stage | to_json_string | default : '""'}}], + "encounter" : {{msg.context | to_json_string | default : '""'}}, + "recordedDate" : "{{msg.assertedDate | date: "yyyy-MM-dd"}}", + "assertedDate" : "", + "context" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Consent.liquid b/data/Templates/Stu3ToR4/Consent.liquid new file mode 100644 index 000000000..46631c739 --- /dev/null +++ b/data/Templates/Stu3ToR4/Consent.liquid @@ -0,0 +1,28 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "identifier" : [{{msg.identifier | to_json_string | default : '""'}}], + "performer" : {{msg.consentingParty | to_json_string | default : '""'}}, + {%if msg.policyRule -%} + "policyRule" : { + "coding" : { + "system" : "urn:ietf:rfc:3986", + "code" : "{{msg.policyRule}}" + } + }, + {% endif -%} + {% if msg.securityLabel or msg.period or msg.actor or msg.action or msg.purpose or msg.dataPeriod or msg.data or msg.except -%} + "provision" : {% include 'Consent/Base' msg: msg %}, + {% endif -%} + "sourceIdentifier" : "", + "except" : "", + "data" : "", + "dataPeriod" : "", + "purpose" : "", + "securityLabel" : "", + "action" : "", + "actor" : "", + "consentingParty" : "", + "period" : "" +} +{% endmergeDiff -%} diff --git a/data/Templates/Stu3ToR4/Consent/_Base.liquid b/data/Templates/Stu3ToR4/Consent/_Base.liquid new file mode 100644 index 000000000..0d0c95bf9 --- /dev/null +++ b/data/Templates/Stu3ToR4/Consent/_Base.liquid @@ -0,0 +1,10 @@ +{ + "period" : {{msg.period | to_json_string | default : '""' }}, + "actor" : {{msg.actor | to_json_string | default : '""'}}, + "action" : {{msg.action | to_json_string | default : '""'}}, + "securityLabel" : {{msg.securityLabel | to_json_string | default : '""'}}, + "purpose" : {{msg.purpose | to_json_string | default : '""'}}, + "dataPeriod" : {{msg.dataPeriod | to_json_string | default : '""'}}, + "data" : {{msg.data | to_json_string | default : '""'}}, + "provision" : [ {{ msg.except | to_array | batch_render: 'Consent/Provision', 'msg' }} ] +} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Consent/_Provision.liquid b/data/Templates/Stu3ToR4/Consent/_Provision.liquid new file mode 100644 index 000000000..b2f304674 --- /dev/null +++ b/data/Templates/Stu3ToR4/Consent/_Provision.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg %} +{ + "code" : {% include 'DataType/CodingToCodeableConcept' msg:msg.code %} +} +{% endmergeDiff %} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Contract.liquid b/data/Templates/Stu3ToR4/Contract.liquid new file mode 100644 index 000000000..1ad6f5c60 --- /dev/null +++ b/data/Templates/Stu3ToR4/Contract.liquid @@ -0,0 +1,16 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "identifier" : [{{msg.identifier | to_json_string | default : '""'}}], + "term" : [ {{ msg.term | to_array | batch_render: 'Contract/ContractTerm', 'msg' }} ], + "signer" : [ {{ msg.signer | to_array | batch_render: 'Contract/ContractSigner', 'msg' }} ], + "binding[x]" : "", + "valuedItem" : "", + "agent" : "", + "securityLabel" : "", + "decisionType" : "", + "action" : "", + "actionReason" : "", + "topic" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Contract/_ContractSigner.liquid b/data/Templates/Stu3ToR4/Contract/_ContractSigner.liquid new file mode 100644 index 000000000..b50c4356c --- /dev/null +++ b/data/Templates/Stu3ToR4/Contract/_ContractSigner.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "signature" : [ {{ msg.signature | to_array | batch_render: 'DataType/Signature', 'msg' }} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Contract/_ContractTerm.liquid b/data/Templates/Stu3ToR4/Contract/_ContractTerm.liquid new file mode 100644 index 000000000..12380e53b --- /dev/null +++ b/data/Templates/Stu3ToR4/Contract/_ContractTerm.liquid @@ -0,0 +1,21 @@ +{% mergeDiff msg -%} +{ + "asset" : [ + { + "valuedItem" : [ {{ msg.valuedItem | to_array | batch_render: 'Contract/ContractTermAssetValuedItem', 'msg' }} ] + } + ], + "securityLable":[ + {% for s in msg.securityLabel -%} + { + "classification" : {{ s | to_json_string | default : '""'}}, + }, + {% endfor -%} + ], + "group" : [ {{ msg.group | to_array | batch_render: 'Contract/ContractTerm', 'msg' }} ], + "actionReason" : "", + "topic" : "", + "action" : "", + "agent" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Contract/_ContractTermAssetValuedItem.liquid b/data/Templates/Stu3ToR4/Contract/_ContractTermAssetValuedItem.liquid new file mode 100644 index 000000000..ab49d6710 --- /dev/null +++ b/data/Templates/Stu3ToR4/Contract/_ContractTermAssetValuedItem.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "unitPrice" : {% include 'DataType/Money' msg: msg.unitPrice -%}, + "net" : {% include 'DataType/Money' msg: msg.net -%} +} +{% endmergeDiff -%} diff --git a/data/Templates/Stu3ToR4/Coverage.liquid b/data/Templates/Stu3ToR4/Coverage.liquid new file mode 100644 index 000000000..023482882 --- /dev/null +++ b/data/Templates/Stu3ToR4/Coverage.liquid @@ -0,0 +1,27 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "class" : [ + {% if msg.grouping.group -%} + {% include 'Coverage/CoverageGroupingGroup' msg: msg.grouping -%}, + {% endif -%} + {% if msg.grouping.subGroup -%} + {% include 'Coverage/CoverageGroupingSubGroup' msg: msg.grouping -%}, + {% endif -%} + {% if msg.grouping.plan -%} + {% include 'Coverage/CoverageGroupingPlan' msg: msg.grouping -%}, + {% endif -%} + {% if msg.grouping.subPlan -%} + {% include 'Coverage/CoverageGroupingSubPlan' msg: msg.grouping -%}, + {% endif -%} + {% if msg.grouping.class -%} + {% include 'Coverage/CoverageGroupingClass' msg: msg.grouping -%}, + {% endif -%} + {% if msg.grouping.subClass -%} + {% include 'Coverage/CoverageGroupingSubClass' msg: msg.grouping -%}, + {% endif -%} + ], + "sequence" : "", + "grouping" : "" +} +{% endmergeDiff -%} diff --git a/data/Templates/Stu3ToR4/Coverage/_CoverageGroupingClass.liquid b/data/Templates/Stu3ToR4/Coverage/_CoverageGroupingClass.liquid new file mode 100644 index 000000000..6215d8056 --- /dev/null +++ b/data/Templates/Stu3ToR4/Coverage/_CoverageGroupingClass.liquid @@ -0,0 +1,10 @@ +{ + "type" : { + "coding" : { + "system" : "http://terminology.hl7.org/CodeSystem/coverage-class", + "code" : "class" + } + }, + "value" : "{{msg.class}}", + "name" : "{{msg.classDisplay}}" +} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Coverage/_CoverageGroupingGroup.liquid b/data/Templates/Stu3ToR4/Coverage/_CoverageGroupingGroup.liquid new file mode 100644 index 000000000..5053060fc --- /dev/null +++ b/data/Templates/Stu3ToR4/Coverage/_CoverageGroupingGroup.liquid @@ -0,0 +1,10 @@ +{ + "type" : { + "coding" : { + "system" : "http://terminology.hl7.org/CodeSystem/coverage-class", + "code" : "group" + } + }, + "value" : "{{msg.group}}", + "name" : "{{msg.groupDisplay}}" +} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Coverage/_CoverageGroupingPlan.liquid b/data/Templates/Stu3ToR4/Coverage/_CoverageGroupingPlan.liquid new file mode 100644 index 000000000..24828bfeb --- /dev/null +++ b/data/Templates/Stu3ToR4/Coverage/_CoverageGroupingPlan.liquid @@ -0,0 +1,10 @@ +{ + "type" : { + "coding" : { + "system" : "http://terminology.hl7.org/CodeSystem/coverage-class", + "code" : "plan" + } + }, + "value" : "{{msg.plan}}", + "name" : "{{msg.planDisplay}}" +} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Coverage/_CoverageGroupingSubClass.liquid b/data/Templates/Stu3ToR4/Coverage/_CoverageGroupingSubClass.liquid new file mode 100644 index 000000000..db3958e3d --- /dev/null +++ b/data/Templates/Stu3ToR4/Coverage/_CoverageGroupingSubClass.liquid @@ -0,0 +1,10 @@ +{ + "type" : { + "coding" : { + "system" : "http://terminology.hl7.org/CodeSystem/coverage-class", + "code" : "subclass" + } + }, + "value" : "{{msg.subClass}}", + "name" : "{{msg.subClassDisplay}}" +} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Coverage/_CoverageGroupingSubGroup.liquid b/data/Templates/Stu3ToR4/Coverage/_CoverageGroupingSubGroup.liquid new file mode 100644 index 000000000..25f46203d --- /dev/null +++ b/data/Templates/Stu3ToR4/Coverage/_CoverageGroupingSubGroup.liquid @@ -0,0 +1,10 @@ +{ + "type" : { + "coding" : { + "system" : "http://terminology.hl7.org/CodeSystem/coverage-class", + "code" : "subgroup" + } + }, + "value" : "{{msg.subGroup}}", + "name" : "{{msg.subGroupDisplay}}" +} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Coverage/_CoverageGroupingSubPlan.liquid b/data/Templates/Stu3ToR4/Coverage/_CoverageGroupingSubPlan.liquid new file mode 100644 index 000000000..5c6ffc78c --- /dev/null +++ b/data/Templates/Stu3ToR4/Coverage/_CoverageGroupingSubPlan.liquid @@ -0,0 +1,11 @@ +{ + "type" : { + "coding" : + { + "system" : "http://terminology.hl7.org/CodeSystem/coverage-class", + "code" : "subplan" + } + }, + "value" : "{{msg.subPlan}}", + "name" : "{{msg.subPlanDisplay}}", +} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DataType/DataRequirement/_CodeFilter.liquid b/data/Templates/Stu3ToR4/DataType/DataRequirement/_CodeFilter.liquid new file mode 100644 index 000000000..7aa1b4766 --- /dev/null +++ b/data/Templates/Stu3ToR4/DataType/DataRequirement/_CodeFilter.liquid @@ -0,0 +1,19 @@ +{% mergeDiff msg -%} +{ + "valueSet[x]" : "", + "valueSet" : "{{msg.valueSetReference.reference}}", + "code" : [ + { + "code" : "{{msg.valueCode}}" + }, + {{msg.valueCoding | to_json_string | default : '""'}}, + {% for c in msg.valueCodeableConcept.coding -%} + {{c | to_json_string | default : '""'}}, + {% endfor -%} + ], + "code" : {{msg.valueCoding | to_json_string | default : '""'}}, + "valueCoding" : "", + "valueCode" : "", + "valueCodeableConcept" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DataType/_CodeableConceptToAttachment.liquid b/data/Templates/Stu3ToR4/DataType/_CodeableConceptToAttachment.liquid new file mode 100644 index 000000000..dc00d0da5 --- /dev/null +++ b/data/Templates/Stu3ToR4/DataType/_CodeableConceptToAttachment.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg %} +{ + +} +{% endmergeDiff %} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DataType/_CodeableConceptToCode.liquid b/data/Templates/Stu3ToR4/DataType/_CodeableConceptToCode.liquid new file mode 100644 index 000000000..3c4ee5864 --- /dev/null +++ b/data/Templates/Stu3ToR4/DataType/_CodeableConceptToCode.liquid @@ -0,0 +1,2 @@ +{% assign coding = msg.coding | first -%} +"{{coding.code}}" \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DataType/_CodingToCodeableConcept.liquid b/data/Templates/Stu3ToR4/DataType/_CodingToCodeableConcept.liquid new file mode 100644 index 000000000..a005badbf --- /dev/null +++ b/data/Templates/Stu3ToR4/DataType/_CodingToCodeableConcept.liquid @@ -0,0 +1,5 @@ +[ + { + "coding" : {{msg | to_json_string | default : '""'}} + } +] \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DataType/_ContributorToContactDetail.liquid b/data/Templates/Stu3ToR4/DataType/_ContributorToContactDetail.liquid new file mode 100644 index 000000000..c5dc297e5 --- /dev/null +++ b/data/Templates/Stu3ToR4/DataType/_ContributorToContactDetail.liquid @@ -0,0 +1,3 @@ +{% for c in msg.contact -%} + {{ c |to_json_string | default : '""'}}, +{% endfor -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DataType/_DataRequirement.liquid b/data/Templates/Stu3ToR4/DataType/_DataRequirement.liquid new file mode 100644 index 000000000..7bb675152 --- /dev/null +++ b/data/Templates/Stu3ToR4/DataType/_DataRequirement.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "codeFilter" : [ {{ msg.codeFilter | to_array | batch_render: 'DataType/DataRequirement/CodeFilter', 'msg' }} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DataType/_DecimalToQuantity.liquid b/data/Templates/Stu3ToR4/DataType/_DecimalToQuantity.liquid new file mode 100644 index 000000000..1bd175ba7 --- /dev/null +++ b/data/Templates/Stu3ToR4/DataType/_DecimalToQuantity.liquid @@ -0,0 +1,5 @@ +{ + {% if msg -%} + "value" : {{msg}} + {% endif -%} +} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DataType/_Dosage.liquid b/data/Templates/Stu3ToR4/DataType/_Dosage.liquid new file mode 100644 index 000000000..80680ea37 --- /dev/null +++ b/data/Templates/Stu3ToR4/DataType/_Dosage.liquid @@ -0,0 +1,18 @@ +{% mergeDiff msg -%} +{ + "doseAndRate" : [ + { + "doseRange":{{msg.doseRange | to_json_string | default : '""'}}, + "doseQuantity":{{msg.doseQuantity | to_json_string | default : '""'}}, + "rateRatio":{{msg.rateRatio | to_json_string | default : '""'}}, + "rateRange":{{msg.rateRange | to_json_string | default : '""'}}, + "rateQuantity":{{msg.rateQuantity | to_json_string | default : '""'}}, + } + ], + "doseRange" : "", + "doseQuantity" : "", + "rateRatio" : "", + "rateRange" : "", + "rateQuantity" : "" +} +{% endmergeDiff -%} diff --git a/data/Templates/Stu3ToR4/DataType/_Extension.liquid b/data/Templates/Stu3ToR4/DataType/_Extension.liquid new file mode 100644 index 000000000..4632b3c55 --- /dev/null +++ b/data/Templates/Stu3ToR4/DataType/_Extension.liquid @@ -0,0 +1,10 @@ +{% mergeDiff msg -%} +{ + "valueMoney" : {% include 'DataType/Money' msg : msg.valueMoney -%}, + "valueSignature" : {% include 'DataType/Money' msg : msg.valueSignature -%}, + "valueDataRequirement" : {% include 'DataType/DataRequirement' msg : msg.valueDataRequirement -%}, + "valueDosage" : {% include 'DataType/Dosage' msg : msg.valueDosage -%}, + "valueRelatedArtifact" : {% include 'DataType/RelatedArtifact' msg : msg.valueRelatedArtifact -%}, + "valueTriggerDefinition" : {% include 'DataType/TriggerDefinition' msg : msg.valueTriggerDefinition -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DataType/_IdToOid.liquid b/data/Templates/Stu3ToR4/DataType/_IdToOid.liquid new file mode 100644 index 000000000..a062e2fba --- /dev/null +++ b/data/Templates/Stu3ToR4/DataType/_IdToOid.liquid @@ -0,0 +1 @@ +"{{'urn:oid:' | appand : msg}}" \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DataType/_IdentifierToCodeableConcept.liquid b/data/Templates/Stu3ToR4/DataType/_IdentifierToCodeableConcept.liquid new file mode 100644 index 000000000..9cf35f46a --- /dev/null +++ b/data/Templates/Stu3ToR4/DataType/_IdentifierToCodeableConcept.liquid @@ -0,0 +1,4 @@ +{ + "coding" : [{{msg.type | to_json_string | default : '""'}}], + "text" : "{{msg.value}}" +} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DataType/_IdentifierToReference.liquid b/data/Templates/Stu3ToR4/DataType/_IdentifierToReference.liquid new file mode 100644 index 000000000..775b173d7 --- /dev/null +++ b/data/Templates/Stu3ToR4/DataType/_IdentifierToReference.liquid @@ -0,0 +1,3 @@ +{ + "identifier":{{msg | to_json_string | default : '""'}}, +} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DataType/_Money.liquid b/data/Templates/Stu3ToR4/DataType/_Money.liquid new file mode 100644 index 000000000..cecd62d41 --- /dev/null +++ b/data/Templates/Stu3ToR4/DataType/_Money.liquid @@ -0,0 +1,4 @@ +{ + "value": "{{msg.value}}", + "currency" : "{{msg.code}}", +} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DataType/_OidToId.liquid b/data/Templates/Stu3ToR4/DataType/_OidToId.liquid new file mode 100644 index 000000000..b3c1d5911 --- /dev/null +++ b/data/Templates/Stu3ToR4/DataType/_OidToId.liquid @@ -0,0 +1 @@ +"{{msg | remove : 'urn:oid:'}}" \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DataType/_ReferenceToCanonical.liquid b/data/Templates/Stu3ToR4/DataType/_ReferenceToCanonical.liquid new file mode 100644 index 000000000..79b724d1b --- /dev/null +++ b/data/Templates/Stu3ToR4/DataType/_ReferenceToCanonical.liquid @@ -0,0 +1 @@ +"{{msg.reference}}" \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DataType/_RelatedArtifact.liquid b/data/Templates/Stu3ToR4/DataType/_RelatedArtifact.liquid new file mode 100644 index 000000000..377f70b97 --- /dev/null +++ b/data/Templates/Stu3ToR4/DataType/_RelatedArtifact.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "resource" : {% include 'DataType/ReferenceToCanonical' msg: msg.resource -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DataType/_ResourceMapping.liquid b/data/Templates/Stu3ToR4/DataType/_ResourceMapping.liquid new file mode 100644 index 000000000..76cc6a816 --- /dev/null +++ b/data/Templates/Stu3ToR4/DataType/_ResourceMapping.liquid @@ -0,0 +1,24 @@ +{% case msg -%} + {% when "BodySite" %} + "BodyStructure" + {% when "DataElement" %} + "StructureDefinition" + {% when "EligibilityRequest" %} + "CoverageEligibilityRequest" + {% when "EligibilityResponse" %} + "CoverageEligibilityResponse" + {% when "ExpansionProfile" %} + "Parameters" + {% when "Sequence" %} + "MolecularSequence" + {% when "ProcessRequest" %} + "Task" + {% when "ProcessResponse" %} + "Task" + {% when "ReferralRequest" %} + "ServiceRequest" + {% when "ProcedureRequest" %} + "ServiceRequest" + {% else -%} + "{{msg}}" +{% endcase -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DataType/_Signature.liquid b/data/Templates/Stu3ToR4/DataType/_Signature.liquid new file mode 100644 index 000000000..15e29cb7a --- /dev/null +++ b/data/Templates/Stu3ToR4/DataType/_Signature.liquid @@ -0,0 +1,33 @@ +{% mergeDiff msg -%} +{ + "onBehalfOf[x]" : "", + "who[x]" : "", + {%if msg.whoUri -%} + "who" : { + "reference" : "{{msg.whoUri}}", + "extension" : { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/BaseType", + "valueString" : "uri" + } + }, + {% else if msg.whoReference -%} + "who" : {{msg.whoReference | to_json_string | default : '""'}}, + {% endif -%} + {%if msg.onBehalfOfUri -%} + "onBehalfOf" : { + "reference" : "{{msg.onBehalfOfUri}}", + "extension" : { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/BaseType", + "valueString" : "uri" + } + }, + {% else if msg.onBehalfOfReference -%} + "onBehalfOf" : {{msg.onBehalfOfReference | to_json_string | default : '""'}}, + {% endif -%} + "sigFormat" : "{{msg.contentType}}", + "data" : "{{msg.blob}}", + "blob" : "", + "contentType" : "", +} +{% endmergeDiff -%} + diff --git a/data/Templates/Stu3ToR4/DataType/_StringToAnnotation.liquid b/data/Templates/Stu3ToR4/DataType/_StringToAnnotation.liquid new file mode 100644 index 000000000..f894e9dd3 --- /dev/null +++ b/data/Templates/Stu3ToR4/DataType/_StringToAnnotation.liquid @@ -0,0 +1,3 @@ +{ + "text":"{{msg}}" +} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DataType/_TriggerDefinition.liquid b/data/Templates/Stu3ToR4/DataType/_TriggerDefinition.liquid new file mode 100644 index 000000000..464834743 --- /dev/null +++ b/data/Templates/Stu3ToR4/DataType/_TriggerDefinition.liquid @@ -0,0 +1,15 @@ +{% mergeDiff msg -%} +{ + "name" : "{{msg.eventName}}", + "timingTiming" : {{msg.eventTimingTiming | to_json_string | default : '""'}}, + "timingReference" : {{msg.eventTimingReference | to_json_string | default : '""'}}, + "timingDate" : "{{msg.eventTimingDate}}", + "timingDateTime" : "{{msg.eventTimingDateTime}}", + "data" : [ + {% include 'DataType/DataRequirement' msg: msg.eventData -%} + ], + "eventData" : "", + "eventTiming[x]" : "", + "eventName" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DetectedIssue.liquid b/data/Templates/Stu3ToR4/DetectedIssue.liquid new file mode 100644 index 000000000..518a27a37 --- /dev/null +++ b/data/Templates/Stu3ToR4/DetectedIssue.liquid @@ -0,0 +1,9 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "code" : {{msg.category | to_json_string | default : '""'}}, + "identifiedDateTime" : "{{msg.date}}", + "date" : "", + "category" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Device.liquid b/data/Templates/Stu3ToR4/Device.liquid new file mode 100644 index 000000000..64940537f --- /dev/null +++ b/data/Templates/Stu3ToR4/Device.liquid @@ -0,0 +1,31 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "udiCarrier" : [ + { + "deviceIdentifier" : "{{msg.udi.deviceIdentifier}}", + "jurisdiction" : "{{msg.udi.jurisdiction}}", + "carrierHRF" : "{{msg.udi.carrierHRF}}", + "carrierAIDC" : "{{msg.udi.carrierAIDC}}", + "issuer" : "{{msg.udi.issuer}}", + "entryType" : "{{msg.udi.entryType}}" + } + ], + "deviceName" : [ + {%if msg.udi.name -%} + { + "name" : "{{msg.udi.name}}", + "type" : "udi-label-name" + }, + {% endif -%} + ], + "modelNumber" : "{{msg.model}}", + "version" : [ + { + "value" : "{{msg.version}}" + } + ], + "model" : "", + "udi" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DeviceMetric.liquid b/data/Templates/Stu3ToR4/DeviceMetric.liquid new file mode 100644 index 000000000..2a9471609 --- /dev/null +++ b/data/Templates/Stu3ToR4/DeviceMetric.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DeviceRequest.liquid b/data/Templates/Stu3ToR4/DeviceRequest.liquid new file mode 100644 index 000000000..7c388950e --- /dev/null +++ b/data/Templates/Stu3ToR4/DeviceRequest.liquid @@ -0,0 +1,10 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "intent" : {{msg.intent.coding[0].code | to_json_string | default : '""'}}, + "encounter" : {{msg.context | to_json_string | default : '""'}}, + "requester" : {{msg.requester.agent | to_json_string | default : '""'}}, + "context" : "", + "definition" : "" +} +{% endmergeDiff -%} diff --git a/data/Templates/Stu3ToR4/DeviceUseStatement.liquid b/data/Templates/Stu3ToR4/DeviceUseStatement.liquid new file mode 100644 index 000000000..b8283309d --- /dev/null +++ b/data/Templates/Stu3ToR4/DeviceUseStatement.liquid @@ -0,0 +1,19 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.whenUsed -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-DeviceUseStatement.whenUsed", + "valuePeriod" : {{msg.whenUsed | to_json_string | default : '""' }} + }, + {% endif -%} + ], + "reasonCode" : {{msg.indication | to_json_string | default : '""'}}, + "indication" : "", + "whenUsed" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DiagnosticReport.liquid b/data/Templates/Stu3ToR4/DiagnosticReport.liquid new file mode 100644 index 000000000..78830b9c7 --- /dev/null +++ b/data/Templates/Stu3ToR4/DiagnosticReport.liquid @@ -0,0 +1,13 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "category" : [{{msg.category | to_json_string | default : '""'}}], + "encounter" : {{msg.context | to_json_string | default : '""'}}, + "performer" : [ {{ msg.performer | to_array | batch_render: 'DiagnosticReport/Performer', 'msg' }} ], + "media" : {{msg.image | to_json_string | default : '""' }}, + "conclusionCode" : {{msg.codedDiagnosis | to_json_string | default : '""'}}, + "codedDiagnosis" : "", + "image" : "", + "context" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DiagnosticReport/_Performer.liquid b/data/Templates/Stu3ToR4/DiagnosticReport/_Performer.liquid new file mode 100644 index 000000000..60882bad0 --- /dev/null +++ b/data/Templates/Stu3ToR4/DiagnosticReport/_Performer.liquid @@ -0,0 +1,20 @@ +{% mergeDiff msg -%} +{ + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.role -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-DiagnosticReport.performer.role", + "valueCodeableConcept" : {{msg.role | to_json_string | default : '""' }} + }, + {% endif -%} + ], + "actor" : "", + "role" : "", + "reference" : "{{msg.actor.reference}}", + "identifier" : {{msg.actor.identifier | to_json_string | default:'""'}}, + "display" : "{{msg.actor.display}}" +} +{% endmergeDiff -%} diff --git a/data/Templates/Stu3ToR4/DocumentManifest.liquid b/data/Templates/Stu3ToR4/DocumentManifest.liquid new file mode 100644 index 000000000..3581255dc --- /dev/null +++ b/data/Templates/Stu3ToR4/DocumentManifest.liquid @@ -0,0 +1,12 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "content" : [ + {% for c in msg.content %} + {% if c.pReference %} + {{c.pReference | to_json_string | default : '""'}}, + {% endif %} + {% endfor %} + ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/DocumentReference.liquid b/data/Templates/Stu3ToR4/DocumentReference.liquid new file mode 100644 index 000000000..6c5136bad --- /dev/null +++ b/data/Templates/Stu3ToR4/DocumentReference.liquid @@ -0,0 +1,25 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "category" : [ + {{msg.class | to_json_string | default : '""'}} + ], + "date" : "{{msg.indexed | date: "yyyy-MM-ddTHH:mm:ss.fff%K" }}", + "created" : "", + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.created -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-DocumentReference.created", + "valuedateTime" : "{{msg.created | date: "yyyy-MM-ddTHH:mm:ss.fff%K" }}" + }, + {% endif -%} + ], + "indexed" : "", + "class" : "", + "context" : {% include 'DocumentReference/Context' msg: msg.context -%} +} +{% endmergeDiff -%} + diff --git a/data/Templates/Stu3ToR4/DocumentReference/_Context.liquid b/data/Templates/Stu3ToR4/DocumentReference/_Context.liquid new file mode 100644 index 000000000..4892c7df8 --- /dev/null +++ b/data/Templates/Stu3ToR4/DocumentReference/_Context.liquid @@ -0,0 +1,12 @@ +{% mergeDiff msg -%} +{ + "encounter" : [{{msg.encounter | to_json_string | default : '""'}}], + "related" : [ + {% for r in msg.related %} + {% if r.ref %} + {{ r.ref | to_json_string | default : '""' }} + {% endif %} + {% endfor %} + ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/EligibilityRequest.liquid b/data/Templates/Stu3ToR4/EligibilityRequest.liquid new file mode 100644 index 000000000..ea7a10553 --- /dev/null +++ b/data/Templates/Stu3ToR4/EligibilityRequest.liquid @@ -0,0 +1,23 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "resourceType" : "CoverageEligibilityRequest", + "insurance" : [ + { + "focal" : true, + "coverage" : {{msg.coverage | to_json_string | default : '""' }}, + "businessArrangement" : "{{msg.businessArrangement}}" + } + ], + "item" : [ + { + "category" : {{msg.benefitCategory | to_json_string | default : '""' }} + } + ], + "benefitSubCategory" : "", + "benefitCategory" : "", + "businessArrangement" : "", + "coverage" : "", + "organization" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/EligibilityResponse.liquid b/data/Templates/Stu3ToR4/EligibilityResponse.liquid new file mode 100644 index 000000000..df2421e8c --- /dev/null +++ b/data/Templates/Stu3ToR4/EligibilityResponse.liquid @@ -0,0 +1,18 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "resourceType" : "CoverageEligibilityResponse", + "requestor" : {{msg.requestProvider | to_json_string | default : '""'}}, + "inforce" : "", + {% assign value = msg.outcome.coding[0].code -%} + {% if value == 'complete' or value == 'error' or value == 'partial' -%} + "outcome" : "{{value}}", + {% else %} + "outcome":"", + {% endif -%} + "requestOrganization" : "", + "insurance" : [ {{ msg.insurance | to_array | batch_render: 'EligibilityResponse/EligibilityResponseInsurance', 'insurance' }} ], + "requestProvider" : "" +} +{% endmergeDiff -%} + diff --git a/data/Templates/Stu3ToR4/EligibilityResponse/_EligibilityResponseInsurance.liquid b/data/Templates/Stu3ToR4/EligibilityResponse/_EligibilityResponseInsurance.liquid new file mode 100644 index 000000000..0f75faa26 --- /dev/null +++ b/data/Templates/Stu3ToR4/EligibilityResponse/_EligibilityResponseInsurance.liquid @@ -0,0 +1,9 @@ +{% mergeDiff insurance -%} +{ + {% if msg.inforce == true -%} + "inforce" : true, + {% endif -%} + "benefitBalance" : "", + "contract" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Encounter.liquid b/data/Templates/Stu3ToR4/Encounter.liquid new file mode 100644 index 000000000..5b6bbe9ea --- /dev/null +++ b/data/Templates/Stu3ToR4/Encounter.liquid @@ -0,0 +1,11 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "basedOn" : {{msg.incomingReferral | to_json_string | default : '""'}}, + "reasonCode" : {{msg.reason | to_json_string | default : '""'}}, + "appointment" : [{{msg.appointment | to_json_string | default : '""'}}], + "diagnosis" : [ {{ msg.diagnosis | to_array | batch_render: 'Encounter/Diagnosis', 'msg' }} ], + "reason" : "", + "incomingReferral" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Encounter/_Diagnosis.liquid b/data/Templates/Stu3ToR4/Encounter/_Diagnosis.liquid new file mode 100644 index 000000000..14bf0e223 --- /dev/null +++ b/data/Templates/Stu3ToR4/Encounter/_Diagnosis.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "use" : {{msg.role | to_json_string | default : '""'}}, + "role" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Endpoint.liquid b/data/Templates/Stu3ToR4/Endpoint.liquid new file mode 100644 index 000000000..2a9471609 --- /dev/null +++ b/data/Templates/Stu3ToR4/Endpoint.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/EnrollmentRequest.liquid b/data/Templates/Stu3ToR4/EnrollmentRequest.liquid new file mode 100644 index 000000000..94d79cf79 --- /dev/null +++ b/data/Templates/Stu3ToR4/EnrollmentRequest.liquid @@ -0,0 +1,8 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "candidate" : {{msg.subject | to_json_string | default : '""'}}, + "subject" : "", + "organization" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/EnrollmentResponse.liquid b/data/Templates/Stu3ToR4/EnrollmentResponse.liquid new file mode 100644 index 000000000..b42968f0c --- /dev/null +++ b/data/Templates/Stu3ToR4/EnrollmentResponse.liquid @@ -0,0 +1,11 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "outcome" : "", + {% assign value = msg.outcome.coding[0].code %} + {% if value == 'complete' or value == 'error' or value == 'partial' -%} + "outcome" : "{{value}}", + {% endif -%} + "requestOrganization" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/EpisodeOfCare.liquid b/data/Templates/Stu3ToR4/EpisodeOfCare.liquid new file mode 100644 index 000000000..2a9471609 --- /dev/null +++ b/data/Templates/Stu3ToR4/EpisodeOfCare.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ExplanationOfBenefit.liquid b/data/Templates/Stu3ToR4/ExplanationOfBenefit.liquid new file mode 100644 index 000000000..303e8249d --- /dev/null +++ b/data/Templates/Stu3ToR4/ExplanationOfBenefit.liquid @@ -0,0 +1,31 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "subtype" : {{msg.subtype[0] | to_json_string | default:'""'}}, + "outcome" : "", + {% assign value = msg.outcome.coding[0].code %} + {% if value == 'complete' or value == 'error' or value == 'partial' -%} + "outcome" : "{{value}}", + {% endif -%} + "payee" : {% include 'ExplanationOfBenefit/ExplanationOfBenefitPayee' msg: msg.payee -%}, + "supportingInfo" : {{msg.information | to_json_string | default : '""' }}, + "insurance" : [{{msg.insurance | to_json_string | default:'""'}}], + "item" : [ {{ msg.item | to_array | batch_render: 'ExplanationOfBenefit/ExplanationOfBenefitItem', 'msg' }} ], + "addItem" : [ {{ msg.addItem | to_array | batch_render: 'ExplanationOfBenefit/ExplanationOfBenefitAddItem', 'msg' }} ], + "total" : [ + {% include 'ExplanationOfBenefit/ExplanationOfBenefitTotalCost' msg: msg.totalCost -%}, + {% include 'ExplanationOfBenefit/ExplanationOfBenefitTotalBenefit' msg: msg.totalBenefit -%} + ], + "payment" : {% include 'ExplanationOfBenefit/ExplanationOfBenefitPayment' msg: msg.payment -%}, + "form" : {% include 'DataType/CodeableConceptToAttachment' msg: msg.form -%}, + "processNote" : [ {{ msg.processNote | to_array | batch_render: 'ExplanationOfBenefit/ExplanationOfBenefitProcessNote', 'msg' }} ], + "benefitBalance" : [ {{ msg.benefitBalance | to_array | batch_render: 'ExplanationOfBenefit/ExplanationOfBenefitBenefitBalance', 'msg' }} ], + "totalBenefit" : "", + "unallocDeductable" : "", + "totalCost" : "", + "hospitalization" : "", + "employmentImpacted" : "", + "information" : "", + "organization" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitAddItem.liquid b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitAddItem.liquid new file mode 100644 index 000000000..a14d57bfb --- /dev/null +++ b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitAddItem.liquid @@ -0,0 +1,11 @@ +{% mergeDiff msg -%} +{ + "adjudication" : [ {{ msg.adjudication | to_array | batch_render: '_ExplanationOfBenefitItemAdjudication', 'msg' }} ], + "detail" : [ {{ msg.detail | to_array | batch_render: 'ExplanationOfBenefit/ExplanationOfBenefitAddItemDetail', 'msg' }} ], + "fee" : "", + "service" : "", + "category" : "", + "revenue" : "", + "sequenceLinkId" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitAddItemDetail.liquid b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitAddItemDetail.liquid new file mode 100644 index 000000000..042bdcbd5 --- /dev/null +++ b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitAddItemDetail.liquid @@ -0,0 +1,9 @@ +{% mergeDiff msg -%} +{ + "adjudication" : [ {{ msg.adjudication | to_array | batch_render: '_ExplanationOfBenefitItemAdjudication', 'msg' }} ], + "fee" : "", + "service" : "", + "category" : "", + "revenue" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitAddItemDetailSubDetail.liquid b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitAddItemDetailSubDetail.liquid new file mode 100644 index 000000000..34cd97ad9 --- /dev/null +++ b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitAddItemDetailSubDetail.liquid @@ -0,0 +1,9 @@ +{% mergeDiff msg -%} +{ + "unitPrice" : {% include 'DataType/Money' msg: msg.unitPrice -%}, + "net" : {% include 'DataType/Money' msg: msg.net -%}, + "adjudication" : [ {{ msg.adjudication | to_array | batch_render: '_ExplanationOfBenefitItemAdjudication', 'msg' }} ], + "service" : "", + "type" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitBenefitBalance.liquid b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitBenefitBalance.liquid new file mode 100644 index 000000000..e2415b218 --- /dev/null +++ b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitBenefitBalance.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "subCategory" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitItem.liquid b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitItem.liquid new file mode 100644 index 000000000..703271ade --- /dev/null +++ b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitItem.liquid @@ -0,0 +1,18 @@ +{% mergeDiff msg -%} +{ + "careTeamSequence" : {{msg.careTeamLinkId | to_json_string | default : '""'}}, + "diagnosisSequence" : {{msg.diagnosisLinkId | to_json_string | default : '""'}}, + "procedureSequence" : {{msg.procedureLinkId | to_json_string | default : '""'}}, + "informationSequence" : {{msg.informationLinkId | to_json_string | default : '""'}}, + "productOrService" : {{msg.service | to_json_string | default : '""'}}, + "unitPrice" : {% include 'DataType/Money' msg: msg.unitPrice -%}, + "net" : {% include 'DataType/Money' msg: msg.net -%}, + "adjudication" : [ {{ msg.adjudication | to_array | batch_render: 'ExplanationOfBenefit/ExplanationOfBenefitItemAdjudication', 'msg' }} ], + "detail" : [ {{ msg.detail | to_array | batch_render: 'ExplanationOfBenefit/ExplanationOfBenefitItemDetail', 'msg' }} ], + "service" : "", + "informationLinkId" : "", + "procedureLinkId" : "", + "diagnosisLinkId" : "", + "careTeamLinkId" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitItemAdjudication.liquid b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitItemAdjudication.liquid new file mode 100644 index 000000000..58ce319e9 --- /dev/null +++ b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitItemAdjudication.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "amount" : {% include 'DataType/Money' msg: msg.amount -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitItemDetail.liquid b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitItemDetail.liquid new file mode 100644 index 000000000..6c4f20bd1 --- /dev/null +++ b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitItemDetail.liquid @@ -0,0 +1,10 @@ +{% mergeDiff msg -%} +{ + "unitPrice" : {% include 'DataType/Money' msg: msg.unitPrice -%}, + "net" : {% include 'DataType/Money' msg: msg.net -%}, + "adjudication" : [ {{ msg.adjudication | to_array | batch_render: '_ExplanationOfBenefitItemAdjudication', 'msg' }} ], + "subDetail" : [ {{ msg.subDetail | to_array | batch_render: 'ExplanationOfBenefit/ExplanationOfBenefitItemDetailSubDetail', 'msg' }} ], + "service" : "", + "type" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitItemDetailSubDetail.liquid b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitItemDetailSubDetail.liquid new file mode 100644 index 000000000..34cd97ad9 --- /dev/null +++ b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitItemDetailSubDetail.liquid @@ -0,0 +1,9 @@ +{% mergeDiff msg -%} +{ + "unitPrice" : {% include 'DataType/Money' msg: msg.unitPrice -%}, + "net" : {% include 'DataType/Money' msg: msg.net -%}, + "adjudication" : [ {{ msg.adjudication | to_array | batch_render: '_ExplanationOfBenefitItemAdjudication', 'msg' }} ], + "service" : "", + "type" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitPayee.liquid b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitPayee.liquid new file mode 100644 index 000000000..66fb17285 --- /dev/null +++ b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitPayee.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "resourceType" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitPayment.liquid b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitPayment.liquid new file mode 100644 index 000000000..e89086eb0 --- /dev/null +++ b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitPayment.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "adjustment" : {% include 'DataType/Money' msg: msg.adjustment -%}, + "amount" : {% include 'DataType/Money' msg: msg.amount -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitProcessNote.liquid b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitProcessNote.liquid new file mode 100644 index 000000000..5c111b5ed --- /dev/null +++ b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitProcessNote.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "type" : {% include 'DataType/CodeableConceptToCode' msg: msg.type -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitTotalBenefit.liquid b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitTotalBenefit.liquid new file mode 100644 index 000000000..34e4670c3 --- /dev/null +++ b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitTotalBenefit.liquid @@ -0,0 +1,10 @@ +{ + "category" : { + "text" : "Benefit Amount", + "coding" : { + "code" : "benefit", + "system" : "http://terminology.hl7.org/CodeSystem/adjudication" + } + }, + "amount" : {% include 'DataType/Money' msg: msg -%} +} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitTotalCost.liquid b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitTotalCost.liquid new file mode 100644 index 000000000..69d6811d3 --- /dev/null +++ b/data/Templates/Stu3ToR4/ExplanationOfBenefit/_ExplanationOfBenefitTotalCost.liquid @@ -0,0 +1,10 @@ +{ + "category" : { + "text" : "Submitted Amount", + "coding" : { + "code" : "submitted", + "system" : "http://terminology.hl7.org/CodeSystem/adjudication" + } + }, + "amount" : {% include 'DataType/Money' msg: msg -%} +} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/FamilyMemberHistory.liquid b/data/Templates/Stu3ToR4/FamilyMemberHistory.liquid new file mode 100644 index 000000000..692bfc54e --- /dev/null +++ b/data/Templates/Stu3ToR4/FamilyMemberHistory.liquid @@ -0,0 +1,32 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "instantiatesCanonical" : [ {{ msg.definition | to_array | batch_render: 'DataType/ReferenceToCanonical', 'msg' }} ], + {%if msg.notDone -%} + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-FamilyMemberHistory.notDone", + "valueBoolean" : "{{msg.notDone}}" + }, + ], + {% endif -%} + "dataAbsentReason" : {{msg.notDoneReason | to_json_string | default : '""'}}, + {%if msg.gender -%} + "sex" : { + "coding" : [ + { + "system" : "http://hl7.org/fhir/administrative-gender", + "code" : "{{msg.gender}}" + } + ] + }, + {% endif -%} + "definition" : "", + "gender" : "", + "notDone" : "", + "notDoneReason" : "", +} +{% endmergeDiff -%} diff --git a/data/Templates/Stu3ToR4/Flag.liquid b/data/Templates/Stu3ToR4/Flag.liquid new file mode 100644 index 000000000..10e3f5606 --- /dev/null +++ b/data/Templates/Stu3ToR4/Flag.liquid @@ -0,0 +1,8 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "category" : [ + {{msg.category | to_json_string | default : '""' }}, + ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Goal.liquid b/data/Templates/Stu3ToR4/Goal.liquid new file mode 100644 index 000000000..102a96be6 --- /dev/null +++ b/data/Templates/Stu3ToR4/Goal.liquid @@ -0,0 +1,53 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + {% assign value = msg.status %} + {% if value == 'proposed' or value == 'planned' or value == 'accepted' or value == 'on-hold' or value == 'cancelled' or value == 'entered-in-error' or value == 'rejected' -%} + "lifecycleStatus" : "{{value}}", + {% elseif value == 'achieved' -%} + "lifecycleStatus" : "completed", + {% elseif value == 'in-progress' or value == 'sustaining' -%} + "lifecycleStatus" : "active", + "achievementStatus" : { + "coding" : [ + { + "system" : "http://terminology.hl7.org/CodeSystem/goal-achievement", + "code" : "{{value}}" + } + ] + }, + {% elseif value == 'on-target' -%} + "lifecycleStatus" : "active", + "achievementStatus" : { + "coding" : [ + { + "system" : "http://terminology.hl7.org/CodeSystem/goal-achievement", + "code" : "sustaining" + } + ] + }, + {% elseif value == 'ahead-of-target' -%} + "lifecycleStatus" : "active", + "achievementStatus" : { + "coding" : [ + { + "system" : "http://terminology.hl7.org/CodeSystem/goal-achievement", + "code" : "improving" + } + ] + }, + {% elseif value == 'behind-target' -%} + "lifecycleStatus" : "active", + "achievementStatus" : { + "coding" : [ + { + "system" : "http://terminology.hl7.org/CodeSystem/goal-achievement", + "code" : "worsening" + } + ] + }, + {% endif -%} + "target" : [{{msg.target | to_json_string | default : '""'}}], + "status" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/GraphDefinition.liquid b/data/Templates/Stu3ToR4/GraphDefinition.liquid new file mode 100644 index 000000000..db53f5236 --- /dev/null +++ b/data/Templates/Stu3ToR4/GraphDefinition.liquid @@ -0,0 +1,7 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "link" : [ {{ msg.link | to_array | batch_render: 'GraphDefinition/Link', 'msg' }} ] +} +{% endmergeDiff -%} + diff --git a/data/Templates/Stu3ToR4/GraphDefinition/_Compartment.liquid b/data/Templates/Stu3ToR4/GraphDefinition/_Compartment.liquid new file mode 100644 index 000000000..ee7c6ac0b --- /dev/null +++ b/data/Templates/Stu3ToR4/GraphDefinition/_Compartment.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "use" : "requirement" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/GraphDefinition/_Link.liquid b/data/Templates/Stu3ToR4/GraphDefinition/_Link.liquid new file mode 100644 index 000000000..02b2de131 --- /dev/null +++ b/data/Templates/Stu3ToR4/GraphDefinition/_Link.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "target" : [ {{ msg.target | to_array | batch_render: 'GraphDefinition/TheTarget', 'msg' }} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/GraphDefinition/_TheTarget.liquid b/data/Templates/Stu3ToR4/GraphDefinition/_TheTarget.liquid new file mode 100644 index 000000000..114b5b99d --- /dev/null +++ b/data/Templates/Stu3ToR4/GraphDefinition/_TheTarget.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "compartment" : [ {{ msg.compartment | to_array | batch_render: 'GraphDefinition/Compartment', 'msg' }} ], + "link" : [ {{ msg.link | to_array | batch_render: 'GraphDefinition/Link', 'msg' }} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Group.liquid b/data/Templates/Stu3ToR4/Group.liquid new file mode 100644 index 000000000..2a9471609 --- /dev/null +++ b/data/Templates/Stu3ToR4/Group.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/GuidanceResponse.liquid b/data/Templates/Stu3ToR4/GuidanceResponse.liquid new file mode 100644 index 000000000..8f3681011 --- /dev/null +++ b/data/Templates/Stu3ToR4/GuidanceResponse.liquid @@ -0,0 +1,19 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "identifier" : [{{msg.identifier | to_json_string | default : '""'}}], + "requestIdentifier" : { + "value" : "{{msg.requestId}}" + }, + "moduleCanonical" : {% include 'DataType/ReferenceToCanonical' msg: msg.module -%}, + "encounter" : {{msg.context | to_json_string | default : '""'}}, + "reasonCode" : [{{msg.reasonCodeableConcept | to_json_string | default : '""'}}], + "reasonReference" : [{{msg.reasonReference | to_json_string | default : '""'}}], + "dataRequirement" : [ {{ msg.dataRequirement | to_array | batch_render: 'DataType/DataRequirement', 'msg' }} ], + "context" : "", + "requestId" : "", + "module" : "", + "reasonCodeableConcept": "" +} +{% endmergeDiff -%} + diff --git a/data/Templates/Stu3ToR4/HealthcareService.liquid b/data/Templates/Stu3ToR4/HealthcareService.liquid new file mode 100644 index 000000000..8eec1554a --- /dev/null +++ b/data/Templates/Stu3ToR4/HealthcareService.liquid @@ -0,0 +1,19 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "category" : [{{ msg.category | to_json_string | default : '""' }}], + "eligibility" :[ + { + "code" : {{msg.eligibility | to_json_string | default : '""' }}, + "comment" : "{{msg.eligibilityNote}}" + } + ], + "program" : [ + { + "text": "{{msg.programName}}" + } + ], + "eligibilityNote" : "", + "programName" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ImagingStudy.liquid b/data/Templates/Stu3ToR4/ImagingStudy.liquid new file mode 100644 index 000000000..ba7ea237f --- /dev/null +++ b/data/Templates/Stu3ToR4/ImagingStudy.liquid @@ -0,0 +1,39 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "identifier" : [ + {%if msg.uid -%} + { + "system" : "urn:dicom:uid", + "value" : "{{msg.uid}}" + }, + {% endif -%} + {% for i in msg.identifier -%} + {{ i | to_json_string | default : '""'}}, + {% endfor -%} + {{msg.accession | to_json_string | default : '""'}} + ], + {% if msg.availability == 'OFFLINE' or msg.availability == 'UNAVAILABLE' -%} + "status" : "registered", + {% elseif msg.availability == 'ONLINE' or msg.availability == 'NEARLINE' -%} + "status" : "available", + {% elseif msg.availability == null -%} + "status" : "unknown", + {% endif -%} + "modality" : {{msg.modalityList | to_json_string | default : '""'}}, + "subject" : {{msg.patient | to_json_string | default : '""'}}, + "encounter" : {{msg.context | to_json_string | default : '""'}}, + "procedureReference": {{msg.procedureReference[0] | to_json_string | default : '""'}}, + "reasonCode" : [ + {{msg.reason | to_json_string | default : '""'}} + ], + "series" : [ {{ msg.series | to_array | batch_render: 'ImagingStudy/Series', 'msg' }} ], + "reason" : "", + "context" : "", + "patient" : "", + "modalityList" : "", + "availability" : "", + "accession" : "", + "uid" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ImagingStudy/_Instance.liquid b/data/Templates/Stu3ToR4/ImagingStudy/_Instance.liquid new file mode 100644 index 000000000..effd707e7 --- /dev/null +++ b/data/Templates/Stu3ToR4/ImagingStudy/_Instance.liquid @@ -0,0 +1,11 @@ +{% mergeDiff msg -%} +{ + "uid" : {% include 'DataType/OidToId' msg: msg.uid -%}, + {%if msg.sopClass -%} + "sopClass" : { + "system" : "urn:ietf:rfc:3986", + "code" : "{{msg.sopClass}}" + }, + {% endif -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ImagingStudy/_Performer.liquid b/data/Templates/Stu3ToR4/ImagingStudy/_Performer.liquid new file mode 100644 index 000000000..3feceb75b --- /dev/null +++ b/data/Templates/Stu3ToR4/ImagingStudy/_Performer.liquid @@ -0,0 +1,11 @@ +{ + "function" : { + "coding" : [ + { + "system" : "http://terminology.hl7.org/CodeSystem/v3-ParticipationType", + "code" : "PRF" + } + ] + }, + "actor" : {{msg | to_json_string | default : '""'}}, +} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ImagingStudy/_Series.liquid b/data/Templates/Stu3ToR4/ImagingStudy/_Series.liquid new file mode 100644 index 000000000..4bd9d5d71 --- /dev/null +++ b/data/Templates/Stu3ToR4/ImagingStudy/_Series.liquid @@ -0,0 +1,19 @@ +{% mergeDiff msg -%} +{ + "uid" : {% include 'DataType/OidToId' msg: msg.uid -%}, + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.availability -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-ImagingStudy.series.availability", + "valueCode" : "{{msg.availability}}" + }, + {% endif -%} + ], + "performer" : [ {{ msg.performer | to_array | batch_render: 'ImagingStudy/Performer', 'msg' }} ], + "instance" : [ {{ msg.instance | to_array | batch_render: 'ImagingStudy/Instance', 'msg' }} ], + "availability" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Immunization.liquid b/data/Templates/Stu3ToR4/Immunization.liquid new file mode 100644 index 000000000..3f597d905 --- /dev/null +++ b/data/Templates/Stu3ToR4/Immunization.liquid @@ -0,0 +1,30 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + {% if msg.notGiven == true -%} + "status" : "not-done", + {% endif -%} + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.notGiven -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-Immunization.notGiven", + "valueBoolean" : "{{msg.notGiven}}" + }, + {% endif -%} + ], + "occurrenceDateTime" : "{{msg.date}}", + "performer" : [ {{ msg.practitioner | to_array | batch_render: 'Immunization/Practitioner', 'msg' }} ], + "reasonCode" : {{msg.explanation.reason | to_json_string | default : '""'}}, + "reasonCode" : {{msg.explanation.reasonNotGiven | to_json_string | default : '""'}}, + "protocolApplied" : [ {{ msg.vaccinationProtocol | to_array | batch_render: 'Immunization/Protocol', 'msg' }} ], + "vaccinationProtocol" : "", + "explanation" : "", + "practitioner" : "", + "date" : "", + "notGiven" : "" +} +{% endmergeDiff -%} + diff --git a/data/Templates/Stu3ToR4/Immunization/_Practitioner.liquid b/data/Templates/Stu3ToR4/Immunization/_Practitioner.liquid new file mode 100644 index 000000000..aa9e1b726 --- /dev/null +++ b/data/Templates/Stu3ToR4/Immunization/_Practitioner.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "function" : {{msg.role | to_json_string | default : '""'}}, + "role" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Immunization/_Protocol.liquid b/data/Templates/Stu3ToR4/Immunization/_Protocol.liquid new file mode 100644 index 000000000..123bb8105 --- /dev/null +++ b/data/Templates/Stu3ToR4/Immunization/_Protocol.liquid @@ -0,0 +1,34 @@ +{% mergeDiff msg -%} +{ + "doseNumberPositiveInt" : {{msg.doseSequence}}, + "seriesDosesPositiveInt" : {{msg.seriesDoses}}, + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.description -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-Immunization.vaccinationProtocol.description", + "valueString" : "{{msg.description}}" + }, + {% endif -%} + {%if msg.doseStatus -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-Immunization.vaccinationProtocol.doseStatus", + "valueCodeableConcept" : {{msg.doseStatus | to_json_string | default : '""' }} + }, + {% endif -%} + {%if msg.doseStatusReason -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-Immunization.vaccinationProtocol.doseStatusReason", + "valueCodeableConcept" : {{msg.doseStatusReason | to_json_string | default : '""' }} + }, + {% endif -%} + ], + "description" : "", + "doseStatus" : "", + "doseStatusReason" : "", + "doseSequence" : "", + "seriesDoses" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ImmunizationRecommendation.liquid b/data/Templates/Stu3ToR4/ImmunizationRecommendation.liquid new file mode 100644 index 000000000..6dc360824 --- /dev/null +++ b/data/Templates/Stu3ToR4/ImmunizationRecommendation.liquid @@ -0,0 +1,8 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "recommendation" : [{{msg.recommendation | to_array | batch_render : 'ImmunizationRecommendation/Recommendation', 'msg' }}], + "date" : "{{msg.recommendation[0].date | date: "yyyy-MM-ddTHH:mm:ss.fff%K" }}", + "authority" : {{msg.recommendation[0].protocol.authority | to_json_string | default : '""'}}, +} +{% endmergeDiff -%} diff --git a/data/Templates/Stu3ToR4/ImmunizationRecommendation/_Recommendation.liquid b/data/Templates/Stu3ToR4/ImmunizationRecommendation/_Recommendation.liquid new file mode 100644 index 000000000..fc88fc82a --- /dev/null +++ b/data/Templates/Stu3ToR4/ImmunizationRecommendation/_Recommendation.liquid @@ -0,0 +1,12 @@ +{% mergeDiff msg -%} +{ + "vaccineCode" : [{{msg.vaccineCode | to_json_string | default : '""'}}], + "doseNumberPositiveInt" : {{msg.doseNumber}}, + "doseNumber" : "", + "description" : "{{msg.protocol.description}}", + "series" : "{{msg.protocol.series}}", + "protocol" : "", + "seriesDosesPositiveInt" : {{msg.protocol.doseSequence}}, + "date" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ImplementationGuide.liquid b/data/Templates/Stu3ToR4/ImplementationGuide.liquid new file mode 100644 index 000000000..e53858c00 --- /dev/null +++ b/data/Templates/Stu3ToR4/ImplementationGuide.liquid @@ -0,0 +1,24 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "dependsOn" :[ + {% for d in msg.dependency -%} + {% if d.type == 'reference' -%} + { + "uri":"{{d.uri}}" + }, + {% endif -%} + {% endfor %} + ], + "global" : [ {{ msg.global | to_array | batch_render: 'ImplementationGuide/Global', 'msg' }} ], + "definition" : {% include 'ImplementationGuide/Definition' msg: msg -%}, + {% if msg.binary -%} + "manifest" : {% include 'ImplementationGuide/Manifest' msg: msg -%}, + {% endif -%} + "page" : "", + "binary" : "", + "package" : "", + "dependency" : "" +} +{% endmergeDiff -%} + diff --git a/data/Templates/Stu3ToR4/ImplementationGuide/_Definition.liquid b/data/Templates/Stu3ToR4/ImplementationGuide/_Definition.liquid new file mode 100644 index 000000000..aaf014002 --- /dev/null +++ b/data/Templates/Stu3ToR4/ImplementationGuide/_Definition.liquid @@ -0,0 +1,9 @@ +{ + "grouping" : [ {{ msg.package | to_array | batch_render: 'ImplementationGuide/Grouping', 'msg' }} ], + "page" : {% include 'ImplementationGuide/Page' msg: msg.page -%}, + "resource": [ + {% for p in msg.package -%} + {{ p.resource | to_array | batch_render : 'ImplementationGuide/Resource', 'msg'}} + {% endfor -%} + ] +} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ImplementationGuide/_Global.liquid b/data/Templates/Stu3ToR4/ImplementationGuide/_Global.liquid new file mode 100644 index 000000000..9caf4f24b --- /dev/null +++ b/data/Templates/Stu3ToR4/ImplementationGuide/_Global.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "profile" : {% include 'DataType/ReferenceToCanonical' msg: msg.profile -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ImplementationGuide/_Grouping.liquid b/data/Templates/Stu3ToR4/ImplementationGuide/_Grouping.liquid new file mode 100644 index 000000000..37ad173b5 --- /dev/null +++ b/data/Templates/Stu3ToR4/ImplementationGuide/_Grouping.liquid @@ -0,0 +1,4 @@ +{ + "name" : "{{msg.name}}", + "description" : "{{msg.description}}", +} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ImplementationGuide/_Manifest.liquid b/data/Templates/Stu3ToR4/ImplementationGuide/_Manifest.liquid new file mode 100644 index 000000000..7e9abb248 --- /dev/null +++ b/data/Templates/Stu3ToR4/ImplementationGuide/_Manifest.liquid @@ -0,0 +1,3 @@ +{ + "other" : {{msg.binary | to_json_string | default : '""'}}, +} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ImplementationGuide/_Page.liquid b/data/Templates/Stu3ToR4/ImplementationGuide/_Page.liquid new file mode 100644 index 000000000..784debdcb --- /dev/null +++ b/data/Templates/Stu3ToR4/ImplementationGuide/_Page.liquid @@ -0,0 +1,40 @@ +{% mergeDiff msg -%} +{ + "nameUrl" : "{{msg.source}}", + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.kind -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-ImplementationGuide.page.kind", + "valueCode" : "{{msg.kind}}" + }, + {% endif -%} + {% for t in mag.type -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-ImplementationGuide.page.type", + "valueCode" : "{{t}}" + }, + {% endfor -%} + {% for p in mag.package -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-ImplementationGuide.page.package", + "valueString" : "{{p}}" + }, + {% endfor -%} + {%if msg.format -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-ImplementationGuide.page.format", + "valueCode" : "{{msg.format}}" + }, + {% endif -%} + ], + "page" : [ {{ msg.page | to_array | batch_render: 'ImplementationGuide/Page', 'msg' }} ], + "kind" : "", + "type" : "", + "package" : "", + "format" : "", + "source" : "" +} +{% endmergeDiff -%} diff --git a/data/Templates/Stu3ToR4/ImplementationGuide/_Resource.liquid b/data/Templates/Stu3ToR4/ImplementationGuide/_Resource.liquid new file mode 100644 index 000000000..20ef17acc --- /dev/null +++ b/data/Templates/Stu3ToR4/ImplementationGuide/_Resource.liquid @@ -0,0 +1,37 @@ +{% mergeDiff msg -%} +{ + {% if msg.exampleFor == null -%} + "exampleBoolean" : {{msg.example}}, + {% else -%} + "exampleCanonical" : {% include 'DataType/ReferenceToCanonical' msg: msg.exampleFor -%}, + {% endif -%} + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.acronym -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-ImplementationGuide.package.resource.acronym", + "valueString" : "{{msg.acronym}}" + }, + {% endif -%} + ], + {%if msg.sourceUri -%} + "reference" : { + "reference" : "{{msg.sourceUri}}", + "extension" : { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/BaseType", + "valueUri" : "uri" + } + }, + {% endif -%} + {%if msg.sourceReference -%} + "reference" : {{msg.sourceReference | to_json_string | default : '""'}}, + {% endif -%} + "exampleFor" : "", + "example" : "", + "acronym" : "", + "sourceUri" : "", + "sourceReference" :"" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Library.liquid b/data/Templates/Stu3ToR4/Library.liquid new file mode 100644 index 000000000..02f598e97 --- /dev/null +++ b/data/Templates/Stu3ToR4/Library.liquid @@ -0,0 +1,36 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "author" :[ + {% for c in msg.contributor %} + {% if c.type == 'author' -%} + {% include 'DataType/ContributorToContactDetail' msg : c -%}, + {% endif %} + {% endfor %} + ], + "editor" :[ + {% for c in msg.contributor %} + {% if c.type == "editor" -%} + {% include 'DataType/ContributorToContactDetail' msg : c -%}, + {% endif %} + {% endfor %} + ], + "reviewer" :[ + {% for c in msg.contributor %} + {% if c.type == "reviewer" -%} + {% include 'DataType/ContributorToContactDetail' msg : c -%}, + {% endif %} + {% endfor %} + ], + "endorser" :[ + {% for c in msg.contributor %} + {% if c.type == "endorser" -%} + {% include 'DataType/ContributorToContactDetail' msg : c -%}, + {% endif %} + {% endfor %} + ], + "relatedArtifact" : [ {{ msg.relatedArtifact | to_array | batch_render: 'DataType/RelatedArtifact', 'msg' }} ], + "dataRequirement" : [ {{ msg.dataRequirement | to_array | batch_render: 'DataType/DataRequirement', 'msg' }} ], + "contributor" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Linkage.liquid b/data/Templates/Stu3ToR4/Linkage.liquid new file mode 100644 index 000000000..2a9471609 --- /dev/null +++ b/data/Templates/Stu3ToR4/Linkage.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/List.liquid b/data/Templates/Stu3ToR4/List.liquid new file mode 100644 index 000000000..2a9471609 --- /dev/null +++ b/data/Templates/Stu3ToR4/List.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Location.liquid b/data/Templates/Stu3ToR4/Location.liquid new file mode 100644 index 000000000..488ec2f57 --- /dev/null +++ b/data/Templates/Stu3ToR4/Location.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "type" : [{{msg.type | to_json_string | default : '""'}}] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Measure.liquid b/data/Templates/Stu3ToR4/Measure.liquid new file mode 100644 index 000000000..3ecf41998 --- /dev/null +++ b/data/Templates/Stu3ToR4/Measure.liquid @@ -0,0 +1,53 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "author" :[ + {% for c in msg.contributor %} + {% if c.type == 'author' -%} + {% include 'DataType/ContributorToContactDetail' msg : c -%}, + {% endif %} + {% endfor %} + ], + "editor" :[ + {% for c in msg.contributor %} + {% if c.type == "editor" -%} + {% include 'DataType/ContributorToContactDetail' msg : c -%}, + {% endif %} + {% endfor %} + ], + "reviewer" :[ + {% for c in msg.contributor %} + {% if c.type == "reviewer" -%} + {% include 'DataType/ContributorToContactDetail' msg : c -%}, + {% endif %} + {% endfor %} + ], + "endorser" :[ + {% for c in msg.contributor %} + {% if c.type == "endorser" -%} + {% include 'DataType/ContributorToContactDetail' msg : c -%}, + {% endif %} + {% endfor %} + ], + "relatedArtifact" : [ {{ msg.relatedArtifact | to_array | batch_render: 'DataType/RelatedArtifact', 'msg' }} ], + "library" : [ {{ msg.library | to_array | batch_render: 'DataType/ReferenceToCanonical', 'msg' }} ], + "improvementNotation" : { + "text" : "{{msg.improvementNotation}}" + }, + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.set -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-Measure.set", + "valueString" : "{{msg.set}}" + }, + {% endif -%} + ], + "group" : [ {{ msg.group | to_array | batch_render: 'Measure/TheGroup', 'msg' }} ], + "supplementalData" : [ {{ msg.supplementalData | to_array | batch_render: 'Measure/SupplementalData', 'msg' }} ], + "contributor" : "", + "set" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Measure/_Population.liquid b/data/Templates/Stu3ToR4/Measure/_Population.liquid new file mode 100644 index 000000000..45f764011 --- /dev/null +++ b/data/Templates/Stu3ToR4/Measure/_Population.liquid @@ -0,0 +1,26 @@ +{% mergeDiff msg -%} +{ + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.identifier -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-Measure.group.population.identifier", + "valueIdentifier" : {{msg.identifier | to_json_string | default : '""' }} + }, + {% endif -%} + {%if msg.name -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-Measure.group.population.name", + "valueString" : "{{msg.name}}" + }, + {% endif -%} + ], + "criteria" : { + "expression" : "{{msg.criteria}}" + }, + "name" : "", + "identifier" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Measure/_Stratifier.liquid b/data/Templates/Stu3ToR4/Measure/_Stratifier.liquid new file mode 100644 index 000000000..fb0e5ab1a --- /dev/null +++ b/data/Templates/Stu3ToR4/Measure/_Stratifier.liquid @@ -0,0 +1,21 @@ +{% mergeDiff msg -%} +{ + "code" : {% include 'DataType/IdentifierToCodeableConcept' msg: msg.identifier -%}, + "criteria" : { + "expression" : "{{msg.criteria}}" + }, + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.path -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-Measure.group.stratifier.path", + "valueString" : "{{msg.path}}" + }, + {% endif -%} + ], + "identifier" : "", + "path" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Measure/_SupplementalData.liquid b/data/Templates/Stu3ToR4/Measure/_SupplementalData.liquid new file mode 100644 index 000000000..c92a1f4b6 --- /dev/null +++ b/data/Templates/Stu3ToR4/Measure/_SupplementalData.liquid @@ -0,0 +1,21 @@ +{% mergeDiff msg -%} +{ + "code" : {% include 'DataType/IdentifierToCodeableConcept' msg: msg.identifier -%}, + "criteria" : { + "expression" : "{{msg.criteria}}" + }, + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.path -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-Measure.supplementalData.path", + "valueString" : "{{msg.path}}" + }, + {% endif -%} + ], + "identifier" : "", + "path" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Measure/_TheGroup.liquid b/data/Templates/Stu3ToR4/Measure/_TheGroup.liquid new file mode 100644 index 000000000..20e6771ce --- /dev/null +++ b/data/Templates/Stu3ToR4/Measure/_TheGroup.liquid @@ -0,0 +1,20 @@ +{% mergeDiff msg -%} +{ + "code" : {% include 'DataType/IdentifierToCodeableConcept' msg: msg.identifier -%}, + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.name -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-Measure.group.name", + "valueString" : "{{msg.name}}" + }, + {% endif -%} + ], + "population" : [ {{ msg.population | to_array | batch_render: 'Measure/Population', 'msg' }} ], + "stratifier" : [ {{ msg.stratifier | to_array | batch_render: 'Measure/Stratifier', 'msg' }} ], + "identifier" : "", + "name" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/MeasureReport.liquid b/data/Templates/Stu3ToR4/MeasureReport.liquid new file mode 100644 index 000000000..6a6f3e0ac --- /dev/null +++ b/data/Templates/Stu3ToR4/MeasureReport.liquid @@ -0,0 +1,17 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "type" : {% include 'MeasureReport/TranslateTypeCode' msg : msg.type -%}, + "identifier" : [{{msg.identifier | to_json_string | default : '""' }}], + "measure" : {% include 'DataType/ReferenceToCanonical' msg: msg.measure -%}, + "subject" : {{msg.patient | to_json_string | default : '""'}}, + "reporter" : {{msg.reportingOrganization | to_json_string | default : '""'}}, + "group" : [ {{ msg.group | to_array | batch_render: 'MeasureReport/TheGroup', 'msg' }} ], + "evaluatedResource" : [ + {{msg.evaluatedResources | to_json_string | default : '""'}} + ], + "evaluatedResources" : "", + "reportingOrganization" : "", + "patient" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/MeasureReport/_Population.liquid b/data/Templates/Stu3ToR4/MeasureReport/_Population.liquid new file mode 100644 index 000000000..dba229549 --- /dev/null +++ b/data/Templates/Stu3ToR4/MeasureReport/_Population.liquid @@ -0,0 +1,18 @@ +{% mergeDiff msg -%} +{ + {%if msg.identifier -%} + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-MeasureReport.group.identifier", + "valueIdentifier" : {{msg.identifier | to_json_string | default : '""' }} + }, + ], + {% endif -%} + "subjectResults" : {{msg.patients | to_json_string | default : '""'}}, + "patients" : "", + "identifier" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/MeasureReport/_Population2.liquid b/data/Templates/Stu3ToR4/MeasureReport/_Population2.liquid new file mode 100644 index 000000000..321be34cc --- /dev/null +++ b/data/Templates/Stu3ToR4/MeasureReport/_Population2.liquid @@ -0,0 +1,18 @@ +{% mergeDiff msg -%} +{ + {%if msg.identifier -%} + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-MeasureReport.group.stratifier.stratum.population.identifier", + "valueIdentifier" : {{msg.identifier | to_json_string | default : '""' }} + }, + ], + {% endif -%} + "subjectResults" : {{msg.patients | to_json_string | default : '""'}}, + "patients" : "", + "identifier" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/MeasureReport/_Stratifier.liquid b/data/Templates/Stu3ToR4/MeasureReport/_Stratifier.liquid new file mode 100644 index 000000000..d792535ee --- /dev/null +++ b/data/Templates/Stu3ToR4/MeasureReport/_Stratifier.liquid @@ -0,0 +1,9 @@ +{% mergeDiff msg -%} +{ + "code" : [ + {% include 'DataType/IdentifierToCodeableConcept' msg: msg.identifier -%} + ], + "stratum" : [ {{ msg.stratum | to_array | batch_render: 'MeasureReport/Stratum', 'msg' }} ], + "identifier" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/MeasureReport/_Stratum.liquid b/data/Templates/Stu3ToR4/MeasureReport/_Stratum.liquid new file mode 100644 index 000000000..f96166ac5 --- /dev/null +++ b/data/Templates/Stu3ToR4/MeasureReport/_Stratum.liquid @@ -0,0 +1,9 @@ +{% mergeDiff msg -%} +{ + "value" : { + "text" : "{{msg.value}}" + }, + "population" : [ {{ msg.population | to_array | batch_render: 'MeasureReport/Population2', 'msg' }} ], + "measureScore" : {% include 'DataType/DecimalToQuantity' msg: msg.measureScore -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/MeasureReport/_TheGroup.liquid b/data/Templates/Stu3ToR4/MeasureReport/_TheGroup.liquid new file mode 100644 index 000000000..4b459142b --- /dev/null +++ b/data/Templates/Stu3ToR4/MeasureReport/_TheGroup.liquid @@ -0,0 +1,9 @@ +{% mergeDiff msg -%} +{ + "code" : {% include 'DataType/IdentifierToCodeableConcept' msg: msg.identifier -%}, + "population" : [ {{ msg.population | to_array | batch_render: 'MeasureReport/Population', 'msg' }} ], + "measureScore" : {% include 'DataType/DecimalToQuantity' msg: msg.measureScore -%}, + "stratifier" : [ {{ msg.stratifier | to_array | batch_render: 'MeasureReport/Stratifier', 'msg' }} ], + "identifier" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/MeasureReport/_TranslateTypeCode.liquid b/data/Templates/Stu3ToR4/MeasureReport/_TranslateTypeCode.liquid new file mode 100644 index 000000000..dc864587f --- /dev/null +++ b/data/Templates/Stu3ToR4/MeasureReport/_TranslateTypeCode.liquid @@ -0,0 +1,8 @@ +{% case msg -%} + {% when "patient-list" -%} + "subject-list" + {% when "individual" -%} + "individual" + {% when "summary" -%} + "summary" +{% endcase -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Media.liquid b/data/Templates/Stu3ToR4/Media.liquid new file mode 100644 index 000000000..1fe8a20ea --- /dev/null +++ b/data/Templates/Stu3ToR4/Media.liquid @@ -0,0 +1,20 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + {%if msg.type -%} + "type" : { + "coding" : { + "system" : "http://terminology.hl7.org/CodeSystem/media-type", + "code" : "{{msg.type}}" + } + }, + {% endif -%} + "modality" : {{msg.subtype | to_json_string | default : '""'}}, + "encounter" : {{msg.context | to_json_string | default : '""'}}, + "createdDateTime" : "{{msg.occurrenceDateTime}}", + "createdPeriod" : {{msg.occurrencePeriod | to_json_string | default : '""'}}, + "occurrence[x]" : "", + "context" : "", + "subtype" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Medication.liquid b/data/Templates/Stu3ToR4/Medication.liquid new file mode 100644 index 000000000..8ca67d233 --- /dev/null +++ b/data/Templates/Stu3ToR4/Medication.liquid @@ -0,0 +1,60 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.status -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-Medication.status", + "valueCode" : "{{msg.status}}" + }, + {% endif -%} + {%if msg.isBrand -%} + { + "url" : "hhttp://hl7.org/fhir/r3/StructureDefinition/extension-Medication.isBrand", + "valueBoolean" : "{{msg.isBrand}}" + }, + {% endif -%} + {%if msg.isOverTheCounter -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-MedicationOTC", + "valueBoolean" : "{{msg.isOverTheCounter}}" + }, + {% endif -%} + {%if msg.package.container -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-Medication.package.container", + "valueCodeableConcept" : {{msg.package.container | to_json_string | default : '""' }} + }, + {% endif -%} + {% for c in msg.package.content -%} + {% if c.itemCodableConcept -%} + { + "url" : "http://hl7.org/fhir/3.0/StructureDefinition/extension-Medication.package.content", + "valueCodableConcept": {{c.itemCodableConcept |to_json_string | default : '""'}} + }, + {% endif -%} + {% if c.itemReference -%} + { + "url" : "http://hl7.org/fhir/3.0/StructureDefinition/extension-Medication.package.content", + "valueReference": {{c.itemReference |to_json_string | default : '""'}} + }, + {% endif -%} + {% endfor -%} + {% for i in msg.image -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-MedicationImage", + "valueAttachment" : {{i | to_json_string | default : '""' }} + }, + {% endfor -%} + ], + "ingredient" : [ {{ msg.ingredient | to_array | batch_render: 'Medication/Ingredient', 'msg' }} ], + "batch" : {{msg.package.batch | to_json_string | default : '""' }}, + "image" : "", + "isOverTheCounter" : "", + "isBrand" : "", + "package" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Medication/_Ingredient.liquid b/data/Templates/Stu3ToR4/Medication/_Ingredient.liquid new file mode 100644 index 000000000..793f0f14c --- /dev/null +++ b/data/Templates/Stu3ToR4/Medication/_Ingredient.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "strength" : {{msg.amount | to_json_string | default : '""'}}, + "amount" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/MedicationAdministration.liquid b/data/Templates/Stu3ToR4/MedicationAdministration.liquid new file mode 100644 index 000000000..6ee62e8e2 --- /dev/null +++ b/data/Templates/Stu3ToR4/MedicationAdministration.liquid @@ -0,0 +1,34 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "instantiates" : {{msg.definition | to_json_string | default : '""'}}, + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.status -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-MedicationAdministration.status", + "valueCode" : "{{msg.status}}" + }, + {% endif -%} + {%if msg.notGiven -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-MedicationAdministration.notGiven", + "valueBoolean" : "{{msg.notGiven}}" + }, + {% endif -%} + ], + {% if msg.notGiven -%} + "status" : "not-done", + {% endif -%} + "performer" : [ {{ msg.performer | to_array | batch_render: 'MedicationAdministration/Actor', 'msg' }} ], + "reasonCode" : {{msg.reasonNotGiven | to_json_string | default : '""'}}, + "request" : {{msg.prescription | to_json_string | default : '""'}}, + "dosage" : {% include 'DataType/Dosage' msg: msg.dosage -%}, + "prescription" : "", + "reasonNotGiven" : "", + "definition" : "", + "notGiven" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/MedicationAdministration/_Actor.liquid b/data/Templates/Stu3ToR4/MedicationAdministration/_Actor.liquid new file mode 100644 index 000000000..0e9bfb5f0 --- /dev/null +++ b/data/Templates/Stu3ToR4/MedicationAdministration/_Actor.liquid @@ -0,0 +1,16 @@ +{% mergeDiff msg -%} +{ + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.onBehalfOf -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-MedicationAdministration.performer.onBehalfOf", + "valueReference" : {{msg.onBehalfOf | to_json_string | default : '""' }} + }, + {% endif -%} + ], + "onBehalfOf" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/MedicationDispense.liquid b/data/Templates/Stu3ToR4/MedicationDispense.liquid new file mode 100644 index 000000000..56ea766ae --- /dev/null +++ b/data/Templates/Stu3ToR4/MedicationDispense.liquid @@ -0,0 +1,32 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "performer" : [ {{ msg.performer | to_array | batch_render: 'MedicationDispense/Actor', 'msg' }} ], + "dosageInstruction" : [ {{ msg.dosageInstruction | to_array | batch_render: 'DataType/Dosage', 'msg' }} ], + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.notDone -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-MedicationDispense.notDone", + "valueBoolean" : "{{msg.notDone}}" + }, + {% endif -%} + {%if msg.notDoneReasonCodeableConcept -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-MedicationDispense.notDoneReason", + "valueCodeableConcept" : {{msg.notDoneReasonCodeableConcept | to_json_string | default : '""' }} + }, + {% endif -%} + {%if msg.notDoneReasonReference -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-MedicationDispense.notDoneReason", + "valueReference" : {{msg.notDoneReasonReference | to_json_string | default : '""' }} + }, + {% endif -%} + ], + "notDone" : "", + "notDoneReason[x]" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/MedicationDispense/_Actor.liquid b/data/Templates/Stu3ToR4/MedicationDispense/_Actor.liquid new file mode 100644 index 000000000..e850d63eb --- /dev/null +++ b/data/Templates/Stu3ToR4/MedicationDispense/_Actor.liquid @@ -0,0 +1,16 @@ +{% mergeDiff msg -%} +{ + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.onBehalfOf -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-MedicationDispense.performer.onBehalfOf", + "valueReference" : {{msg.onBehalfOf | to_json_string | default : '""' }} + }, + {% endif -%} + ], + "onBehalfOf" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/MedicationRequest.liquid b/data/Templates/Stu3ToR4/MedicationRequest.liquid new file mode 100644 index 000000000..c5979de25 --- /dev/null +++ b/data/Templates/Stu3ToR4/MedicationRequest.liquid @@ -0,0 +1,24 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "category" : [{{msg.category | to_json_string | default : '""'}}], + "instantiatesCanonical" : {{msg.definition | to_json_string | default : '""'}}, + "encounter" : {{msg.context | to_json_string | default : '""'}}, + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.requester.onBehalfOf -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-MedicationRequest.requester.onBehalfOf", + "valueReference" : {{msg.requester.onBehalfOf | to_json_string | default : '""' }} + }, + {% endif -%} + ], + "requester" : {{msg.requester.agent | to_json_string | default : '""'}}, + "dosageInstruction" : [ {{ msg.dosageInstruction | to_array | batch_render: 'DataType/Dosage', 'msg' }} ], + "substitution" : {% include 'MedicationRequest/Subst' msg: msg.substitution -%}, + "context" : "", + "definition" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/MedicationRequest/_Subst.liquid b/data/Templates/Stu3ToR4/MedicationRequest/_Subst.liquid new file mode 100644 index 000000000..223c81704 --- /dev/null +++ b/data/Templates/Stu3ToR4/MedicationRequest/_Subst.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "allowedBoolean" : {{msg.allowed}}, + "allowed" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/MedicationStatement.liquid b/data/Templates/Stu3ToR4/MedicationStatement.liquid new file mode 100644 index 000000000..92d43c7f5 --- /dev/null +++ b/data/Templates/Stu3ToR4/MedicationStatement.liquid @@ -0,0 +1,33 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.status -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-MedicationStatement.status", + "valueCode" : "{{msg.status}}" + }, + {% endif -%} + {%if msg.taken -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-MedicationStatement.taken", + "valueCode" : "{{msg.taken}}" + }, + {% endif -%} + ], + {% if msg.taken == 'n' -%} + "status" : "not-taken", + {% else if msg.taken == 'unk' -%} + "status" : "unknown", + {% endif -%} + {% if msg.reasonNotTaken -%} + "reasonCode" : {{msg.reasonNotTaken | to_json_string | default : '""'}}, + {% endif -%} + "dosage" : [ {{ msg.dosage | to_array | batch_render: 'DataType/Dosage', 'msg' }} ], + "reasonNotTaken" : "", + "taken" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/MessageDefinition.liquid b/data/Templates/Stu3ToR4/MessageDefinition.liquid new file mode 100644 index 000000000..87bcd9920 --- /dev/null +++ b/data/Templates/Stu3ToR4/MessageDefinition.liquid @@ -0,0 +1,19 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "identifier" : [{{msg.identifier | to_json_string | default : '""' }}], + "eventCoding" : {{msg.event | to_json_string | default : '""'}}, + "base" : {% include 'DataType/ReferenceToCanonical' msg : msg.parent -%}, + "parent" : {% include 'DataType/ReferenceToCanonical' msg : msg.parent -%}, + "replaces" : [{{msg.replaces | to_array | batch_render : 'DataType/ReferenceToCanonical', 'msg' }}], + "focus" : [{{msg.focus | to_array | batch_render : 'MessageDefinition/Focus', 'msg' }}], + "category" : {% include 'MessageDefinition/TranslateCategoryCode' msg : msg.category -%}, + "allowedResponse" : [{{msg.allowedResponse | to_array | batch_render : 'MessageDefinition/AllowedResponse', 'msg' }}], + {% if msg.responseRequired == true -%} + "responseRequired" : "always", + {% else -%} + "responseRequired" : "never", + {% endif -%} + "event" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/MessageDefinition/_AllowedResponse.liquid b/data/Templates/Stu3ToR4/MessageDefinition/_AllowedResponse.liquid new file mode 100644 index 000000000..b4509a84f --- /dev/null +++ b/data/Templates/Stu3ToR4/MessageDefinition/_AllowedResponse.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "message" : {% include 'DataType/ReferenceToCanonical' msg : msg.message -%}, +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/MessageDefinition/_Focus.liquid b/data/Templates/Stu3ToR4/MessageDefinition/_Focus.liquid new file mode 100644 index 000000000..d0167ad96 --- /dev/null +++ b/data/Templates/Stu3ToR4/MessageDefinition/_Focus.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "profile" : {% include 'DataType/ReferenceToCanonical' msg : msg.profile -%}, +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/MessageDefinition/_TranslateCategoryCode.liquid b/data/Templates/Stu3ToR4/MessageDefinition/_TranslateCategoryCode.liquid new file mode 100644 index 000000000..e0cee947c --- /dev/null +++ b/data/Templates/Stu3ToR4/MessageDefinition/_TranslateCategoryCode.liquid @@ -0,0 +1,8 @@ +{% case msg -%} + {% when "Consequence" -%} + "consequence" + {% when "Currency" -%} + "currency" + {% when "Notification" -%} + "notification" +{% endcase -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/MessageHeader.liquid b/data/Templates/Stu3ToR4/MessageHeader.liquid new file mode 100644 index 000000000..807526a7b --- /dev/null +++ b/data/Templates/Stu3ToR4/MessageHeader.liquid @@ -0,0 +1,19 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "eventCoding" : {{msg.event | to_json_string | default : '""'}}, + "destination" : [ + {% for d in msg.destination -%} + { + "name" : "{{d.name}}", + "target" : {{d.target | to_json_string | default : '""'}}, + "endpoint" : "{{d.endpoint}}", + "receiver" : {{msg.receiver | to_json_string | default : '""'}} + }, + {% endfor -%} + ], + "event" : "", + "timestamp" : "", + "receiver" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/NamingSystem.liquid b/data/Templates/Stu3ToR4/NamingSystem.liquid new file mode 100644 index 000000000..3147bd81a --- /dev/null +++ b/data/Templates/Stu3ToR4/NamingSystem.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "replacedBy" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/NutritionOrder.liquid b/data/Templates/Stu3ToR4/NutritionOrder.liquid new file mode 100644 index 000000000..2a9471609 --- /dev/null +++ b/data/Templates/Stu3ToR4/NutritionOrder.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Observation.liquid b/data/Templates/Stu3ToR4/Observation.liquid new file mode 100644 index 000000000..b64464af6 --- /dev/null +++ b/data/Templates/Stu3ToR4/Observation.liquid @@ -0,0 +1,57 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "encounter" : {{msg.context | to_json_string | default : '""'}}, + "related" : "", + "interpretation" : [ {{msg.interpretation | to_json_string | default : '""'}}], + "note" : [ + {% include 'DataType/StringToAnnotation' msg: msg.comment -%} + ], + "comment" : "", + "hasMember" : [ + {% for r in msg.related %} + {% if r.type == "has-member" -%} + {{r.target | to_json_string | default : '""' }}, + {% endif -%} + {% endfor -%} + ], + "derivedFrom" : [ + {% for r in msg.related %} + {% if r.type == "derived-from" -%} + {{r.target | to_json_string | default : '""' }}, + {% endif -%} + {% endfor -%} + ], + "extension":[ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {% for r in msg.related %} + {% case r.type %} + {% when "sequel-to" %} + { + "url":"http://hl7.org/fhir/3.0/StructureDefinition/Observation.sequelTo", + "valueReference": {{r.target | to_json_string | default : '""' }} + }, + {% when "replaces" %} + { + "url":"http://hl7.org/fhir/3.0/StructureDefinition/Observation.replaces", + "valueReference": {{r.target | to_json_string | default : '""' }} + }, + {% when "qualified-by" %} + { + "url":"http://hl7.org/fhir/3.0/StructureDefinition/Observation.qualifiedBy", + "valueReference": {{r.target | to_json_string | default : '""' }} + }, + {% when "interfered-by" %} + { + "url":"http://hl7.org/fhir/3.0/StructureDefinition/Observation.interferedBy", + "valueReference": {{r.target | to_json_string | default : '""' }} + }, + {% endcase %} + {% endfor %} + ], + "context" : "" +} +{% endmergeDiff -%} + diff --git a/data/Templates/Stu3ToR4/OperationDefinition.liquid b/data/Templates/Stu3ToR4/OperationDefinition.liquid new file mode 100644 index 000000000..cc7572ba4 --- /dev/null +++ b/data/Templates/Stu3ToR4/OperationDefinition.liquid @@ -0,0 +1,9 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "affectsState" : "{{msg.idempotent}}", + "idempotent" : "", + "base" : {% include 'DataType/ReferenceToCanonical' msg: msg.base -%}, + "parameter" : [ {{ msg.parameter | to_array | batch_render: 'OperationDefinition/Parameter', 'msg' }} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/OperationDefinition/_Binding.liquid b/data/Templates/Stu3ToR4/OperationDefinition/_Binding.liquid new file mode 100644 index 000000000..ad0fc7a33 --- /dev/null +++ b/data/Templates/Stu3ToR4/OperationDefinition/_Binding.liquid @@ -0,0 +1,11 @@ +{% mergeDiff msg -%} +{ + {% if msg.valueSetReference -%} + "valueSet" : {% include 'DataType/ReferenceToCanonical' msg: msg.valueSetReference -%}, + {% else if msg.valueSetUri -%} + "valueSet" : "{{msg.valueSetUri}}", + {% endif -%} + "valueSetUri" : "", + "valueSetReference" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/OperationDefinition/_Parameter.liquid b/data/Templates/Stu3ToR4/OperationDefinition/_Parameter.liquid new file mode 100644 index 000000000..ed4fb3c90 --- /dev/null +++ b/data/Templates/Stu3ToR4/OperationDefinition/_Parameter.liquid @@ -0,0 +1,10 @@ +{% mergeDiff msg -%} +{ + "targetProfile" : [ + {% include 'DataType/ReferenceToCanonical' msg: msg.profile -%} + ], + "profile" : "", + "binding" : {% include 'OperationDefinition/Binding' msg: msg.binding -%}, + "part" : [ {{ msg.part | to_array | batch_render: 'OperationDefinition/Parameter', 'msg' }} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/OperationOutcome.liquid b/data/Templates/Stu3ToR4/OperationOutcome.liquid new file mode 100644 index 000000000..2a9471609 --- /dev/null +++ b/data/Templates/Stu3ToR4/OperationOutcome.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Organization.liquid b/data/Templates/Stu3ToR4/Organization.liquid new file mode 100644 index 000000000..2a9471609 --- /dev/null +++ b/data/Templates/Stu3ToR4/Organization.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Parameters.liquid b/data/Templates/Stu3ToR4/Parameters.liquid new file mode 100644 index 000000000..4af5b7868 --- /dev/null +++ b/data/Templates/Stu3ToR4/Parameters.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "parameter" : [ {{ msg.parameter | to_array | batch_render: 'Parameters/SubParameter', 'msg' }} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Parameters/_SubParameter.liquid b/data/Templates/Stu3ToR4/Parameters/_SubParameter.liquid new file mode 100644 index 000000000..3bb0b1280 --- /dev/null +++ b/data/Templates/Stu3ToR4/Parameters/_SubParameter.liquid @@ -0,0 +1,7 @@ +{% mergeDiff msg -%} +{ + "valueMoney" : {% include 'DataType/Money' msg: msg.valueMoney -%}, + "resource" : {% include 'Resource' msg: msg.resource -%}, + "part" : [{{msg.part | to_array | batch_render : 'Parameters/SubParameter', 'msg' }}] +} +{% endmergeDiff -%} diff --git a/data/Templates/Stu3ToR4/Patient.liquid b/data/Templates/Stu3ToR4/Patient.liquid new file mode 100644 index 000000000..c483565d4 --- /dev/null +++ b/data/Templates/Stu3ToR4/Patient.liquid @@ -0,0 +1,12 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {% include 'Patient/Animal' msg: msg.animal -%} + ], + "animal" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Patient/_Animal.liquid b/data/Templates/Stu3ToR4/Patient/_Animal.liquid new file mode 100644 index 000000000..6569a87c2 --- /dev/null +++ b/data/Templates/Stu3ToR4/Patient/_Animal.liquid @@ -0,0 +1,31 @@ +{% mergeDiff msg -%} +{ + "url" : "http://hl7.org/fhir/r4/StructureDefinition/patient-animal", + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.species -%} + { + "url" : "species", + "valueCodeableConcept" : {{msg.species | to_json_string | default : '""' }} + }, + {% endif -%} + {%if msg.breed -%} + { + "url" : "breed", + "valueCodeableConcept" : {{msg.breed | to_json_string | default : '""' }} + }, + {% endif -%} + {%if msg.genderStatus -%} + { + "url" : "genderStatus", + "valueCodeableConcept" : {{msg.genderStatus | to_json_string | default : '""' }} + }, + {% endif -%} + ], + "genderStatus" : "", + "breed" : "", + "species" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/PaymentNotice.liquid b/data/Templates/Stu3ToR4/PaymentNotice.liquid new file mode 100644 index 000000000..66ab969f7 --- /dev/null +++ b/data/Templates/Stu3ToR4/PaymentNotice.liquid @@ -0,0 +1,11 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "paymentDate" : "{{msg.statusDate}}", + "recipient" : {{msg.target | to_json_string | default : '""'}}, + "organization" : "", + "target" : "", + "statusDate" : "", + "provider" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/PaymentReconciliation.liquid b/data/Templates/Stu3ToR4/PaymentReconciliation.liquid new file mode 100644 index 000000000..882c17c27 --- /dev/null +++ b/data/Templates/Stu3ToR4/PaymentReconciliation.liquid @@ -0,0 +1,20 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "paymentIssuer" : {{msg.organization | to_json_string | default : '""'}}, + {% assign value = msg.outcome.coding[0].code -%} + {% if value == 'complete' or value == 'error' or value == 'partial' -%} + "outcome" : "{{value}}", + {% endif -%} + "requestor" : {{msg.requestProvider | to_json_string | default : '""'}}, + "detail" : [ {{ msg.detail | to_array | batch_render: 'PaymentReconciliation/PaymentReconciliationDetail', 'msg' }} ], + "formCode" : {{msg.form | to_json_string | default : '""'}}, + "paymentAmount" : {% include 'DataType/Money' msg: msg.total -%}, + "processNote" : [ {{ msg.processNote | to_array | batch_render: 'PaymentReconciliation/PaymentReconciliationProcessNote', 'msg' }} ], + "total" : "", + "form" : "", + "requestOrganization" : "", + "requestProvider" : "", + "organization" : "" +} +{% endmergeDiff -%} diff --git a/data/Templates/Stu3ToR4/PaymentReconciliation/_PaymentReconciliationDetail.liquid b/data/Templates/Stu3ToR4/PaymentReconciliation/_PaymentReconciliationDetail.liquid new file mode 100644 index 000000000..58ce319e9 --- /dev/null +++ b/data/Templates/Stu3ToR4/PaymentReconciliation/_PaymentReconciliationDetail.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "amount" : {% include 'DataType/Money' msg: msg.amount -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/PaymentReconciliation/_PaymentReconciliationProcessNote.liquid b/data/Templates/Stu3ToR4/PaymentReconciliation/_PaymentReconciliationProcessNote.liquid new file mode 100644 index 000000000..8640ca4e4 --- /dev/null +++ b/data/Templates/Stu3ToR4/PaymentReconciliation/_PaymentReconciliationProcessNote.liquid @@ -0,0 +1,4 @@ +{ + "type" : "{{msg.type.coding[0].code}}", + "text" : "{{msg.text}}" +} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Person.liquid b/data/Templates/Stu3ToR4/Person.liquid new file mode 100644 index 000000000..2a9471609 --- /dev/null +++ b/data/Templates/Stu3ToR4/Person.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/PlanDefinition.liquid b/data/Templates/Stu3ToR4/PlanDefinition.liquid new file mode 100644 index 000000000..bde24557c --- /dev/null +++ b/data/Templates/Stu3ToR4/PlanDefinition.liquid @@ -0,0 +1,38 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "author" :[ + {% for c in msg.contributor %} + {% if c.type == 'author' -%} + {% include 'DataType/ContributorToContactDetail' msg : c -%}, + {% endif %} + {% endfor %} + ], + "editor" :[ + {% for c in msg.contributor %} + {% if c.type == "editor" -%} + {% include 'DataType/ContributorToContactDetail' msg : c -%}, + {% endif %} + {% endfor %} + ], + "reviewer" :[ + {% for c in msg.contributor %} + {% if c.type == "reviewer" -%} + {% include 'DataType/ContributorToContactDetail' msg : c -%}, + {% endif %} + {% endfor %} + ], + "endorser" :[ + {% for c in msg.contributor %} + {% if c.type == "endorser" -%} + {% include 'DataType/ContributorToContactDetail' msg : c -%}, + {% endif %} + {% endfor %} + ], + "relatedArtifact" : [ {{ msg.relatedArtifact | to_array | batch_render: 'DataType/RelatedArtifact', 'msg' }} ], + "library" : [ {{ msg.library | to_array | batch_render: 'DataType/ReferenceToCanonical', 'msg' }} ], + "goal" : [ {{ msg.goal | to_array | batch_render: 'PlanDefinition/Goal', 'msg' }} ], + "action" : [ {{ msg.action | to_array | batch_render: 'PlanDefinition/Action', 'msg' }} ], + "contributor" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/PlanDefinition/_Action.liquid b/data/Templates/Stu3ToR4/PlanDefinition/_Action.liquid new file mode 100644 index 000000000..2c462418f --- /dev/null +++ b/data/Templates/Stu3ToR4/PlanDefinition/_Action.liquid @@ -0,0 +1,17 @@ +{% mergeDiff msg -%} +{ + "prefix" : "{{msg.label}}", + "documentation" : [ {{ msg.documentation | to_array | batch_render: 'DataType/RelatedArtifact', 'msg' }} ], + "trigger" : {{msg.triggerDefinition | to_json_string | default : '""'}}, + "condition" : [ {{ msg.condition | to_array | batch_render: 'PlanDefinition/Condition', 'msg' }} ], + "input" : [ {{ msg.input | to_array | batch_render: 'DataType/DataRequirement', 'msg' }} ], + "output" : [ {{ msg.output | to_array | batch_render: 'DataType/DataRequirement', 'msg' }} ], + "type" : {% include 'DataType/CodingToCodeableConcept' msg: msg.type -%}, + "transform" : {% include 'DataType/ReferenceToCanonical' msg: msg.transform -%}, + "dynamicValue" : [ {{ msg.dynamicValue | to_array | batch_render: 'PlanDefinition/DynamicValue', 'msg' }} ], + "action" : [ {{ msg.action | to_array | batch_render: 'PlanDefinition/Action', 'msg' }} ], + "definition" : "", + "triggerDefinition" : "", + "label" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/PlanDefinition/_Condition.liquid b/data/Templates/Stu3ToR4/PlanDefinition/_Condition.liquid new file mode 100644 index 000000000..7191fded7 --- /dev/null +++ b/data/Templates/Stu3ToR4/PlanDefinition/_Condition.liquid @@ -0,0 +1,15 @@ +{% mergeDiff msg -%} +{ + "expression" : { + "description" : "{{msg.description}}" + }, + "expression" : { + "language" : "{{msg.language}}" + }, + "expression" : { + "expression" : "{{msg.expression}}" + }, + "language" : "", + "description" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/PlanDefinition/_DynamicValue.liquid b/data/Templates/Stu3ToR4/PlanDefinition/_DynamicValue.liquid new file mode 100644 index 000000000..f16fb52be --- /dev/null +++ b/data/Templates/Stu3ToR4/PlanDefinition/_DynamicValue.liquid @@ -0,0 +1,12 @@ +{% mergeDiff msg -%} +{ + "expression" : { + "description" : "{{msg.description}}", + "language" : "{{msg.language}}", + "expression" : "{{msg.expression}}" + }, + "language" : "", + "description" : "" +} +{% endmergeDiff -%} + diff --git a/data/Templates/Stu3ToR4/PlanDefinition/_Goal.liquid b/data/Templates/Stu3ToR4/PlanDefinition/_Goal.liquid new file mode 100644 index 000000000..2d3c8d2c6 --- /dev/null +++ b/data/Templates/Stu3ToR4/PlanDefinition/_Goal.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "documentation" : [ {{ msg.documentation | to_array | batch_render: 'DataType/RelatedArtifact', 'msg' }} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Practitioner.liquid b/data/Templates/Stu3ToR4/Practitioner.liquid new file mode 100644 index 000000000..2a9471609 --- /dev/null +++ b/data/Templates/Stu3ToR4/Practitioner.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/PractitionerRole.liquid b/data/Templates/Stu3ToR4/PractitionerRole.liquid new file mode 100644 index 000000000..2a9471609 --- /dev/null +++ b/data/Templates/Stu3ToR4/PractitionerRole.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Procedure.liquid b/data/Templates/Stu3ToR4/Procedure.liquid new file mode 100644 index 000000000..a2938ad44 --- /dev/null +++ b/data/Templates/Stu3ToR4/Procedure.liquid @@ -0,0 +1,17 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + {% if msg.notDone == true -%} + "status" : "not-done", + {% else -%} + "status" : {% include 'Procedure/TranslateStatusCode' msg: msg.status -%}, + {% endif -%} + "statusReason" : {{msg.notDoneReason | to_json_string | default : '""'}}, + "encounter" : {{msg.context | to_json_string | default : '""'}}, + "performer" : [ {{ msg.performer | to_array | batch_render: 'Procedure/ProcedurePerformer', 'msg' }} ], + "context" : "", + "notDone" : "", + "notDoneReason" : "", + "definition" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Procedure/_ProcedurePerformer.liquid b/data/Templates/Stu3ToR4/Procedure/_ProcedurePerformer.liquid new file mode 100644 index 000000000..aa9e1b726 --- /dev/null +++ b/data/Templates/Stu3ToR4/Procedure/_ProcedurePerformer.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "function" : {{msg.role | to_json_string | default : '""'}}, + "role" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Procedure/_TranslateStatusCode.liquid b/data/Templates/Stu3ToR4/Procedure/_TranslateStatusCode.liquid new file mode 100644 index 000000000..394df04f6 --- /dev/null +++ b/data/Templates/Stu3ToR4/Procedure/_TranslateStatusCode.liquid @@ -0,0 +1,15 @@ +{% case msg -%} + {% when "unknown" -%} + "unknown" + {% when "in-progress" -%} + "in-progress" + {% when "suspended" -%} + "suspended" + {% when "aborted" -%} + "stopped" + {% when "completed" -%} + "completed" + {% when "entered-in-error" -%} + "entered-in-error" +{% endcase -%} + diff --git a/data/Templates/Stu3ToR4/Provenance.liquid b/data/Templates/Stu3ToR4/Provenance.liquid new file mode 100644 index 000000000..c3465f581 --- /dev/null +++ b/data/Templates/Stu3ToR4/Provenance.liquid @@ -0,0 +1,12 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "occurredPeriod" : {{msg.period | to_json_string | default : '""'}}, + "reason" : [ {{ msg.reason | to_array | batch_render: 'DataType/CodingToCodeableConcept', 'msg' }} ], + "activity" : {% include 'DataType/CodingToCodeableConcept' msg: msg.activity -%}, + "agent" : [ {{ msg.agent | to_array | batch_render: 'Provenance/Agent', 'msg' }} ], + "entity" : [ {{ msg.entity | to_array | batch_render: 'Provenance/Entity', 'msg' }} ], + "signature" : [ {{ msg.signature | to_array | batch_render: 'DataType/Signature', 'msg' }} ], + "period" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Provenance/_Agent.liquid b/data/Templates/Stu3ToR4/Provenance/_Agent.liquid new file mode 100644 index 000000000..1553b4e22 --- /dev/null +++ b/data/Templates/Stu3ToR4/Provenance/_Agent.liquid @@ -0,0 +1,34 @@ +{% mergeDiff msg -%} +{ + "onBehalfOf[x]" : "", + "who[x]" : "", + {%if msg.whoUri -%} + "who" : { + "reference" : "{{msg.whoUri}}", + "extension" : [ + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/BaseType", + "valueString" : "uri" + } + ] + }, + {% else if msg.whoReference -%} + "who" : {{msg.whoReference |to_json_string | default : '""'}}, + {% endif -%} + {%if msg.onBehalfOfUri -%} + "onBehalfOf" : { + "reference" : "{{msg.onBehalfOfUri}}", + "extension" : [ + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/BaseType", + "valueString" : "uri" + } + ] + }, + {% else if msg.onBehalfOfReference -%} + "onBehalfOf" : {{msg.onBehalfOfReference |to_json_string | default : '""'}}, + {% endif -%} + "type" : {{msg.relatedAgentType | to_json_string | default : '""'}}, + "relatedAgentType" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Provenance/_Entity.liquid b/data/Templates/Stu3ToR4/Provenance/_Entity.liquid new file mode 100644 index 000000000..da312e7de --- /dev/null +++ b/data/Templates/Stu3ToR4/Provenance/_Entity.liquid @@ -0,0 +1,21 @@ +{% mergeDiff msg -%} +{ + "what[x]" : "", + {%if msg.whatUri -%} + "what" : { + "reference" : "{{msg.whatUri}}", + "extension" : [ + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/BaseType", + "valueString" : "uri" + } + ] + }, + {% else if msg.whatReference -%} + "what" : {{msg.whatReference |to_json_string | default : '""'}}, + {% else if msg.whatIdentifier -%} + "what" : {% include 'DataType/IdentifierToReference' msg : msg.whatIdentifier -%}, + {% endif -%} + "agent" : [ {{ msg.agent | to_array | batch_render: 'Provenance/Agent', 'msg' }} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Questionnaire.liquid b/data/Templates/Stu3ToR4/Questionnaire.liquid new file mode 100644 index 000000000..061c440ba --- /dev/null +++ b/data/Templates/Stu3ToR4/Questionnaire.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "item" : [ {{ msg.item | to_array | batch_render: 'Questionnaire/Item', 'msg' }} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Questionnaire/_EnableWhen.liquid b/data/Templates/Stu3ToR4/Questionnaire/_EnableWhen.liquid new file mode 100644 index 000000000..a16413395 --- /dev/null +++ b/data/Templates/Stu3ToR4/Questionnaire/_EnableWhen.liquid @@ -0,0 +1,13 @@ +{% mergeDiff msg -%} +{ + {% if msg.answer == null -%} + "answerBoolean" : {{msg.hasAnswer}}, + "operator" : "exists", + {% else -%} + "operator" : "=", + {% endif -%} + "hasAnswer" : "", + "answerAttachment" : "", + "answerUri" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Questionnaire/_Initial.liquid b/data/Templates/Stu3ToR4/Questionnaire/_Initial.liquid new file mode 100644 index 000000000..4fb6e4263 --- /dev/null +++ b/data/Templates/Stu3ToR4/Questionnaire/_Initial.liquid @@ -0,0 +1,16 @@ +{ + "valueBoolean" : {{msg.initialBoolean}}, + "valueDecimal" : {{msg.initialDecimal}}, + "valueInteger" : {{msg.initialInteger}}, + "valueDate" : "{{msg.initialDate}}", + "valueDateTime" : "{{msg.initialDateTime}}", + "valueTime" : "{{msg.initialTime}}", + "valueString" : "{{msg.initialString}}", + "valueUri" : "{{msg.initialUri}}", + "valueAttachment" : {{msg.initialAttachment | to_json_string | default : '""'}}, + "valueCoding" : {{msg.initialCoding | to_json_string | default : '""'}}, + "valueQuantity" : {{msg.initialQuantity | to_json_string | default : '""'}}, + "valueReference" : {{msg.initialReference | to_json_string | default : '""'}}, + "initial[x]" : "", +} + diff --git a/data/Templates/Stu3ToR4/Questionnaire/_Item.liquid b/data/Templates/Stu3ToR4/Questionnaire/_Item.liquid new file mode 100644 index 000000000..acc0351a0 --- /dev/null +++ b/data/Templates/Stu3ToR4/Questionnaire/_Item.liquid @@ -0,0 +1,14 @@ +{% mergeDiff msg -%} +{ + "enableWhen" : [ {{ msg.enableWhen | to_array | batch_render: 'Questionnaire/EnableWhen', 'msg' }} ], + "answerValueSet" : {% include 'DataType/ReferenceToCanonical' msg : msg.options -%}, + "answerOption" : {{msg.option | to_json_string | default : '""' }}, + "initial" : [ + {% include 'Questionnaire/Initial' msg: msg -%} + ], + "item" : [ {{ msg.item | to_array | batch_render: 'Questionnaire/Item', 'msg' }} ], + "initial[x]" : "", + "option" : "", + "options" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/QuestionnaireResponse.liquid b/data/Templates/Stu3ToR4/QuestionnaireResponse.liquid new file mode 100644 index 000000000..293194d5e --- /dev/null +++ b/data/Templates/Stu3ToR4/QuestionnaireResponse.liquid @@ -0,0 +1,11 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "partOf" : {{msg.parent | to_json_string | default : '""'}}, + "questionnaire" : {% include 'DataType/ReferenceToCanonical' msg: msg.questionnaire -%}, + "encounter" : {{msg.context | to_json_string | default : '""'}}, + "item" : [ {{ msg.item | to_array | batch_render: 'QuestionnaireResponse/Item', 'msg' }} ], + "context" : "", + "parent" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/QuestionnaireResponse/_Answer.liquid b/data/Templates/Stu3ToR4/QuestionnaireResponse/_Answer.liquid new file mode 100644 index 000000000..6c986fd0a --- /dev/null +++ b/data/Templates/Stu3ToR4/QuestionnaireResponse/_Answer.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "item" : [ {{ msg.item | to_array | batch_render: 'QuestionnaireResponse/Item', 'msg' }} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/QuestionnaireResponse/_Item.liquid b/data/Templates/Stu3ToR4/QuestionnaireResponse/_Item.liquid new file mode 100644 index 000000000..2860e62b5 --- /dev/null +++ b/data/Templates/Stu3ToR4/QuestionnaireResponse/_Item.liquid @@ -0,0 +1,18 @@ +{% mergeDiff msg -%} +{ + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.subject -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-QuestionnaireResponse.item.subject", + "valueReference" : {{msg.subject | to_json_string | default : '""' }} + }, + {% endif -%} + ], + "answer" : [ {{ msg.answer | to_array | batch_render: 'QuestionnaireResponse/Answer', 'msg' }} ], + "item" : [ {{ msg.item | to_array | batch_render: 'QuestionnaireResponse/Item', 'msg' }} ], + "subject" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/RelatedPerson.liquid b/data/Templates/Stu3ToR4/RelatedPerson.liquid new file mode 100644 index 000000000..f943a8020 --- /dev/null +++ b/data/Templates/Stu3ToR4/RelatedPerson.liquid @@ -0,0 +1,8 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "relationship" : [ + {{msg.relationship | to_json_string | default : '""'}} + ], +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/RequestGroup.liquid b/data/Templates/Stu3ToR4/RequestGroup.liquid new file mode 100644 index 000000000..0c98e4b6b --- /dev/null +++ b/data/Templates/Stu3ToR4/RequestGroup.liquid @@ -0,0 +1,13 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "instantiatesCanonical" : [{{msg.definition | to_array | batch_render : 'DataType/ReferenceToCanonical', 'msg'}} ], + "encounter" : {{msg.context | to_json_string | default : '""'}}, + "reasonCode" : [{{msg.reasonCodeableConcept | to_json_string | default : '""' }}], + "reasonReference" : [{{msg.reasonReference | to_json_string | default : '""' }}], + "action" : [ {{ msg.action | to_array | batch_render: 'RequestGroup/Action', 'msg' }} ], + "reasonCodeableConcept" : "", + "context" : "", + "definition" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/RequestGroup/_Action.liquid b/data/Templates/Stu3ToR4/RequestGroup/_Action.liquid new file mode 100644 index 000000000..bcdde0a0a --- /dev/null +++ b/data/Templates/Stu3ToR4/RequestGroup/_Action.liquid @@ -0,0 +1,10 @@ +{% mergeDiff msg -%} +{ + "prefix" : "{{msg.label}}", + "documentation" : [ {{ msg.documentation | to_array | batch_render: 'DataType/RelatedArtifact', 'msg' }} ], + "condition" : [ {{ msg.condition | to_array | batch_render: 'RequestGroup/Condition', 'msg' }} ], + "type" : {% include 'DataType/CodingToCodeableConcept' msg: msg.type -%}, + "action" : [ {{ msg.action | to_array | batch_render: 'RequestGroup/Action', 'msg' }} ], + "label" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/RequestGroup/_Condition.liquid b/data/Templates/Stu3ToR4/RequestGroup/_Condition.liquid new file mode 100644 index 000000000..12a57d0d3 --- /dev/null +++ b/data/Templates/Stu3ToR4/RequestGroup/_Condition.liquid @@ -0,0 +1,11 @@ +{% mergeDiff msg -%} +{ + "expression" : { + "description" : "{{msg.description}}", + "language" : "{{msg.language}}", + "expression" : "{{msg.expression}}" + }, + "language" : "", + "description" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ResearchStudy.liquid b/data/Templates/Stu3ToR4/ResearchStudy.liquid new file mode 100644 index 000000000..f8ab81e9c --- /dev/null +++ b/data/Templates/Stu3ToR4/ResearchStudy.liquid @@ -0,0 +1,20 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "status" : {% include 'ResearchStudy/TranslateStatusCode' msg : msg.status -%}, + "relatedArtifact" : [ {{ msg.relatedArtifact | to_array | batch_render: 'DataType/RelatedArtifact', 'msg' }} ], + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {% for j in msg.jurisdiction -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-ResearchStudy.jurisdiction", + "valueCodeableConcept" : {{msg.j | to_json_string | default : '""' }} + }, + {% endfor -%} + ], + "arm" : [ {{ msg.arm | to_array | batch_render: 'ResearchStudy/Arm', 'msg' }} ], + "jurisdiction" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ResearchStudy/_Arm.liquid b/data/Templates/Stu3ToR4/ResearchStudy/_Arm.liquid new file mode 100644 index 000000000..f89f0dc68 --- /dev/null +++ b/data/Templates/Stu3ToR4/ResearchStudy/_Arm.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "type" : {{msg.code | to_json_string | default : '""'}}, + "code" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ResearchStudy/_TranslateStatusCode.liquid b/data/Templates/Stu3ToR4/ResearchStudy/_TranslateStatusCode.liquid new file mode 100644 index 000000000..aa92dad32 --- /dev/null +++ b/data/Templates/Stu3ToR4/ResearchStudy/_TranslateStatusCode.liquid @@ -0,0 +1,14 @@ +{% case msg -%} + {% when "draft" -%} + "in-review" + {% when "in-progress" -%} + "active" + {% when "suspended" -%} + "disapproved" + {% when "stopped" -%} + "withdrawn" + {% when "completed" -%} + "administratively-completed" + {% when "entered-in-error" -%} + "withdrawn" +{% endcase -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ResearchSubject.liquid b/data/Templates/Stu3ToR4/ResearchSubject.liquid new file mode 100644 index 000000000..697359fd8 --- /dev/null +++ b/data/Templates/Stu3ToR4/ResearchSubject.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "identifier" : [ {{msg.identifier | to_json_string | default : '""'}} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Resource.liquid b/data/Templates/Stu3ToR4/Resource.liquid new file mode 100644 index 000000000..996373d32 --- /dev/null +++ b/data/Templates/Stu3ToR4/Resource.liquid @@ -0,0 +1,220 @@ +{% case msg.resourceType -%} + {% when "Account" %} + {% include 'Account' msg %} + {% when "ActivityDefinition" %} + {% include 'ActivityDefinition' msg %} + {% when "Address" %} + {% include 'Address' msg %} + {% when "AdverseEvent" %} + {% include 'AdverseEvent' msg %} + {% when "AllergyIntolerance" %} + {% include 'AllergyIntolerance' msg %} + {% when "Appointment" %} + {% include 'Appointment' msg %} + {% when "AppointmentResponse" %} + {% include 'AppointmentResponse' msg %} + {% when "AuditEvent" %} + {% include 'AuditEvent' msg %} + {% when "Basic" %} + {% include 'Basic' msg %} + {% when "Binary" %} + {% include 'Binary' msg %} + {% when "BodySite" %} + {% include 'BodySite' msg %} + {% when "Bundle" %} + {% include 'Bundle' msg %} + {% when "CapabilityStatement" %} + {% include 'CapabilityStatement' msg %} + {% when "CarePlan" %} + {% include 'CarePlan' msg %} + {% when "CareTeam" %} + {% include 'CareTeam' msg %} + {% when "ChargeItem" %} + {% include 'ChargeItem' msg %} + {% when "Claim" %} + {% include 'Claim' msg %} + {% when "ClaimResponse" %} + {% include 'ClaimResponse' msg %} + {% when "ClinicalImpression" %} + {% include 'ClinicalImpression' msg %} + {% when "CodeSystem" %} + {% include 'CodeSystem' msg %} + {% when "Communication" %} + {% include 'Communication' msg %} + {% when "CommunicationRequest" %} + {% include 'CommunicationRequest' msg %} + {% when "CompartmentDefinition" %} + {% include 'CompartmentDefinition' msg %} + {% when "Composition" %} + {% include 'Composition' msg %} + {% when "ConceptMap" %} + {% include 'ConceptMap' msg %} + {% when "Condition" %} + {% include 'Condition' msg %} + {% when "Consent" %} + {% include 'Consent' msg %} + {% when "Contract" %} + {% include 'Contract' msg %} + {% when "Coverage" %} + {% include 'Coverage' msg %} + {% when "DetectedIssue" %} + {% include 'DetectedIssue' msg %} + {% when "Device" %} + {% include 'Device' msg %} + {% when "DeviceMetric" %} + {% include 'DeviceMetric' msg %} + {% when "DeviceRequest" %} + {% include 'DeviceRequest' msg %} + {% when "DeviceUseStatement" %} + {% include 'DeviceUseStatement' msg %} + {% when "DiagnosticReport" %} + {% include 'DiagnosticReport' msg %} + {% when "DocumentManifest" %} + {% include 'DocumentManifest' msg %} + {% when "DocumentReference" %} + {% include 'DocumentReference' msg %} + {% when "EligibilityRequest" %} + {% include 'EligibilityRequest' msg %} + {% when "EligibilityResponse" %} + {% include 'EligibilityResponse' msg %} + {% when "Encounter" %} + {% include 'Encounter' msg %} + {% when "Endpoint" %} + {% include 'Endpoint' msg %} + {% when "EnrollmentRequest" %} + {% include 'EnrollmentRequest' msg %} + {% when "EnrollmentResponse" %} + {% include 'EnrollmentResponse' msg %} + {% when "EpisodeOfCare" %} + {% include 'EpisodeOfCare' msg %} + {% when "ExplanationOfBenefit" %} + {% include 'ExplanationOfBenefit' msg %} + {% when "FamilyMemberHistory" %} + {% include 'FamilyMemberHistory' msg %} + {% when "Flag" %} + {% include 'Flag' msg %} + {% when "Goal" %} + {% include 'Goal' msg %} + {% when "GraphDefinition" %} + {% include 'GraphDefinition' msg %} + {% when "Group" %} + {% include 'Group' msg %} + {% when "GuidanceResponse" %} + {% include 'GuidanceResponse' msg %} + {% when "HealthcareService" %} + {% include 'HealthcareService' msg %} + {% when "ImagingStudy" %} + {% include 'ImagingStudy' msg %} + {% when "Immunization" %} + {% include 'Immunization' msg %} + {% when "ImmunizationRecommendation" %} + {% include 'ImmunizationRecommendation' msg %} + {% when "ImplementationGuide" %} + {% include 'ImplementationGuide' msg %} + {% when "Library" %} + {% include 'Library' msg %} + {% when "Linkage" %} + {% include 'Linkage' msg %} + {% when "List" %} + {% include 'List' msg %} + {% when "Location" %} + {% include 'Location' msg %} + {% when "Measure" %} + {% include 'Measure' msg %} + {% when "MeasureReport" %} + {% include 'MeasureReport' msg %} + {% when "Media" %} + {% include 'Media' msg %} + {% when "Medication" %} + {% include 'Medication' msg %} + {% when "MedicationAdministration" %} + {% include 'MedicationAdministration' msg %} + {% when "MedicationDispense" %} + {% include 'MedicationDispense' msg %} + {% when "MedicationRequest" %} + {% include 'MedicationRequest' msg %} + {% when "MedicationStatement" %} + {% include 'MedicationStatement' msg %} + {% when "MessageDefinition" %} + {% include 'MessageDefinition' msg %} + {% when "MessageHeader" %} + {% include 'MessageHeader' msg %} + {% when "NamingSystem" %} + {% include 'NamingSystem' msg %} + {% when "NutritionOrder" %} + {% include 'NutritionOrder' msg %} + {% when "Observation" %} + {% include 'Observation' msg %} + {% when "OperationDefinition" %} + {% include 'OperationDefinition' msg %} + {% when "OperationOutcome" %} + {% include 'OperationOutcome' msg %} + {% when "Organization" %} + {% include 'Organization' msg %} + {% when "Parameters" %} + {% include 'Parameters' msg %} + {% when "Patient" %} + {% include 'Patient' msg %} + {% when "PaymentNotice" %} + {% include 'PaymentNotice' msg %} + {% when "PaymentReconciliation" %} + {% include 'PaymentReconciliation' msg %} + {% when "Person" %} + {% include 'Person' msg %} + {% when "PlanDefinition" %} + {% include 'PlanDefinition' msg %} + {% when "Practitioner" %} + {% include 'Practitioner' msg %} + {% when "PractitionerRole" %} + {% include 'PractitionerRole' msg %} + {% when "Procedure" %} + {% include 'Procedure' msg %} + {% when "Provenance" %} + {% include 'Provenance' msg %} + {% when "Questionnaire" %} + {% include 'Questionnaire' msg %} + {% when "QuestionnaireResponse" %} + {% include 'QuestionnaireResponse' msg %} + {% when "RelatedPerson" %} + {% include 'RelatedPerson' msg %} + {% when "RequestGroup" %} + {% include 'RequestGroup' msg %} + {% when "ResearchStudy" %} + {% include 'ResearchStudy' msg %} + {% when "ResearchSubject" %} + {% include 'ResearchSubject' msg %} + {% when "RiskAssessment" %} + {% include 'RiskAssessment' msg %} + {% when "Schedule" %} + {% include 'Schedule' msg %} + {% when "SearchParameter" %} + {% include 'SearchParameter' msg %} + {% when "Sequence" %} + {% include 'Sequence' msg %} + {% when "Slot" %} + {% include 'Slot' msg %} + {% when "Specimen" %} + {% include 'Specimen' msg %} + {% when "StructureDefinition" %} + {% include 'StructureDefinition' msg %} + {% when "StructureMap" %} + {% include 'StructureMap' msg %} + {% when "Subscription" %} + {% include 'Subscription' msg %} + {% when "Substance" %} + {% include 'Substance' msg %} + {% when "SupplyDelivery" %} + {% include 'SupplyDelivery' msg %} + {% when "SupplyRequest" %} + {% include 'SupplyRequest' msg %} + {% when "Task" %} + {% include 'Task' msg %} + {% when "TestReport" %} + {% include 'TestReport' msg %} + {% when "TestScript" %} + {% include 'TestScript' msg %} + {% when "ValueSet" %} + {% include 'ValueSet' msg %} + {% when "VisionPrescription" %} + {% include 'VisionPrescription' msg %} +{% endcase -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/RiskAssessment.liquid b/data/Templates/Stu3ToR4/RiskAssessment.liquid new file mode 100644 index 000000000..3abe643a1 --- /dev/null +++ b/data/Templates/Stu3ToR4/RiskAssessment.liquid @@ -0,0 +1,16 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "encounter" : {{msg.context | to_json_string | default : '""'}}, + "reasonCode" : [{{msg.reasonCodeableConcept | to_json_string | default : '""'}}], + "reasonReference" : [{{msg.reasonReference | to_json_string | default : '""'}}], + "note" : [ + { + "text" : "{{msg.comment}}" + } + ], + "reasonCodeableConcept" : "", + "context" : "", + "comment" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Schedule.liquid b/data/Templates/Stu3ToR4/Schedule.liquid new file mode 100644 index 000000000..67d342aef --- /dev/null +++ b/data/Templates/Stu3ToR4/Schedule.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "serviceCategory" : [{{ msg.serviceCategory | to_json_string | default : '""'}}] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/SearchParameter.liquid b/data/Templates/Stu3ToR4/SearchParameter.liquid new file mode 100644 index 000000000..9efab4173 --- /dev/null +++ b/data/Templates/Stu3ToR4/SearchParameter.liquid @@ -0,0 +1,13 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "component" : [ + {%for item in msg.component -%} + { + "definition" : {% include 'DataType/ReferenceToCanonical' msg: item.definition -%}, + "expression" : "{{item.expression}}" + }, + {% endfor -%} + ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Sequence.liquid b/data/Templates/Stu3ToR4/Sequence.liquid new file mode 100644 index 000000000..74d6e108d --- /dev/null +++ b/data/Templates/Stu3ToR4/Sequence.liquid @@ -0,0 +1,8 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "resourceType" : "MolecularSequence", + "referenceSeq" : {% include 'Sequence/ReferenceSeq' msg:msg.referenceSeq -%}, + "quality" : [ {{ msg.quality | to_array | batch_render: 'Sequence/Quality', 'msg' }} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Sequence/_Quality.liquid b/data/Templates/Stu3ToR4/Sequence/_Quality.liquid new file mode 100644 index 000000000..80391a8a8 --- /dev/null +++ b/data/Templates/Stu3ToR4/Sequence/_Quality.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "standardSequence" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Sequence/_ReferenceSeq.liquid b/data/Templates/Stu3ToR4/Sequence/_ReferenceSeq.liquid new file mode 100644 index 000000000..935c0134d --- /dev/null +++ b/data/Templates/Stu3ToR4/Sequence/_ReferenceSeq.liquid @@ -0,0 +1,9 @@ +{% mergeDiff msg -%} +{ + {% if msg.strand == 1 -%} + "strand" : "watson", + {% else -%} + "strand" : "crick", + {% endif -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Slot.liquid b/data/Templates/Stu3ToR4/Slot.liquid new file mode 100644 index 000000000..283b18d14 --- /dev/null +++ b/data/Templates/Stu3ToR4/Slot.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "serviceCategory" : [{{msg.serviceCategory | to_json_string | default : '""'}}] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Specimen.liquid b/data/Templates/Stu3ToR4/Specimen.liquid new file mode 100644 index 000000000..2a9471609 --- /dev/null +++ b/data/Templates/Stu3ToR4/Specimen.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/StructureDefinition.liquid b/data/Templates/Stu3ToR4/StructureDefinition.liquid new file mode 100644 index 000000000..12de843ee --- /dev/null +++ b/data/Templates/Stu3ToR4/StructureDefinition.liquid @@ -0,0 +1,14 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "fhirVersion" : "4.0.1", + "context":[ + {% for c in msg.context -%} + { + "expression" : {{c}} + }, + {% endfor -%} + ], + "contextType" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/StructureMap.liquid b/data/Templates/Stu3ToR4/StructureMap.liquid new file mode 100644 index 000000000..edec8eb2d --- /dev/null +++ b/data/Templates/Stu3ToR4/StructureMap.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "group" : [ {{ msg.group | to_array | batch_render: 'StructureMap/TheGroup', 'msg' }} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/StructureMap/_Rule.liquid b/data/Templates/Stu3ToR4/StructureMap/_Rule.liquid new file mode 100644 index 000000000..9da43b411 --- /dev/null +++ b/data/Templates/Stu3ToR4/StructureMap/_Rule.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "source" : [ {{ msg.source | to_array | batch_render: 'StructureMap/TheSource', 'msg' }} ], + "rule" : [ {{ msg.rule | to_array | batch_render: 'StructureMap/Rule', 'msg' }} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/StructureMap/_TheGroup.liquid b/data/Templates/Stu3ToR4/StructureMap/_TheGroup.liquid new file mode 100644 index 000000000..1f86b9b56 --- /dev/null +++ b/data/Templates/Stu3ToR4/StructureMap/_TheGroup.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "rule" : [ {{ msg.rule | to_array | batch_render: 'StructureMap/Rule', 'msg' }} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/StructureMap/_TheSource.liquid b/data/Templates/Stu3ToR4/StructureMap/_TheSource.liquid new file mode 100644 index 000000000..5f4c447c0 --- /dev/null +++ b/data/Templates/Stu3ToR4/StructureMap/_TheSource.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "defaultValueMoney" : {% include 'DataType/Money' msg: msg.defaultValueMoney -%}, + "defaultValueSignature" : {% include 'DataType/Signature' msg: msg.defaultValueSignature -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Subscription.liquid b/data/Templates/Stu3ToR4/Subscription.liquid new file mode 100644 index 000000000..4029e1e1c --- /dev/null +++ b/data/Templates/Stu3ToR4/Subscription.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "tag" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Substance.liquid b/data/Templates/Stu3ToR4/Substance.liquid new file mode 100644 index 000000000..2a9471609 --- /dev/null +++ b/data/Templates/Stu3ToR4/Substance.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/SupplyDelivery.liquid b/data/Templates/Stu3ToR4/SupplyDelivery.liquid new file mode 100644 index 000000000..980a1f2bb --- /dev/null +++ b/data/Templates/Stu3ToR4/SupplyDelivery.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "identifier" : [ {{msg.identifier | to_json_string | default : '""'}} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/SupplyRequest.liquid b/data/Templates/Stu3ToR4/SupplyRequest.liquid new file mode 100644 index 000000000..1ab17a218 --- /dev/null +++ b/data/Templates/Stu3ToR4/SupplyRequest.liquid @@ -0,0 +1,25 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "identifier" : [ {{msg.identifier | to_json_string | default : '""'}} ], + "itemCodeableConcept" : {{msg.orderedItem.itemCodeableConcept | to_json_string | default : '""'}}, + "itemReference" : {{msg.orderedItem.itemReference | to_json_string | default : '""'}}, + "quantity" : {{msg.orderedItem.quantity | to_json_string | default : '""'}}, + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.requester.onBehalfOf -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-SupplyRequest.requester.onBehalfOf", + "valueReference" : {{msg.requester.onBehalfOf | to_json_string | default : '""' }} + }, + {% endif -%} + ], + "requester" : {{msg.requester.agent | to_json_string | default : '""'}}, + "reasonCode" : [{{msg.reasonCodeableConcept | to_json_string | default : '""' }}], + "reasonReference" : [{{msg.reasonReference | to_json_string | default : '""' }}], + "reasonCodeableConcept" : "", + "orderedItem" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/Task.liquid b/data/Templates/Stu3ToR4/Task.liquid new file mode 100644 index 000000000..165468f29 --- /dev/null +++ b/data/Templates/Stu3ToR4/Task.liquid @@ -0,0 +1,13 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "instantiatesUri" : "{{msg.definitionUri}}", + "instantiatesCanonical" : {% include 'DataType/ReferenceToCanonical' msg : msg.definitionReference -%}, + "encounter" : {{msg.context | to_json_string | default : '""'}}, + "requester" : {{msg.requester.agent | to_json_string | default : '""'}}, + "reasonCode" : {{msg.reason | to_json_string | default : '""'}}, + "reason" : "", + "context" : "", + "definition[x]" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/TestReport.liquid b/data/Templates/Stu3ToR4/TestReport.liquid new file mode 100644 index 000000000..2a9471609 --- /dev/null +++ b/data/Templates/Stu3ToR4/TestReport.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/TestScript.liquid b/data/Templates/Stu3ToR4/TestScript.liquid new file mode 100644 index 000000000..94b43d24f --- /dev/null +++ b/data/Templates/Stu3ToR4/TestScript.liquid @@ -0,0 +1,10 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "metadata" : {% include 'TestScript/Metadata' msg: msg.metadata -%}, + "setup" : {% include 'TestScript/Setup' msg: msg.setup -%}, + "test" : [ {{ msg.test | to_array | batch_render: 'TestScript/Test', 'msg' }} ], + "rule" : "", + "ruleset" : "", +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/TestScript/_Action.liquid b/data/Templates/Stu3ToR4/TestScript/_Action.liquid new file mode 100644 index 000000000..d7ae79dbb --- /dev/null +++ b/data/Templates/Stu3ToR4/TestScript/_Action.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "assert" : {% include 'TestScript/Assert' msg: msg.assert -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/TestScript/_Assert.liquid b/data/Templates/Stu3ToR4/TestScript/_Assert.liquid new file mode 100644 index 000000000..9924ff402 --- /dev/null +++ b/data/Templates/Stu3ToR4/TestScript/_Assert.liquid @@ -0,0 +1,6 @@ +{% mergeDiff msg -%} +{ + "rule" : "", + "ruleset" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/TestScript/_Capability.liquid b/data/Templates/Stu3ToR4/TestScript/_Capability.liquid new file mode 100644 index 000000000..79bd42691 --- /dev/null +++ b/data/Templates/Stu3ToR4/TestScript/_Capability.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "capabilities" : {% include 'DataType/ReferenceToCanonical' msg: msg.capabilities -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/TestScript/_Metadata.liquid b/data/Templates/Stu3ToR4/TestScript/_Metadata.liquid new file mode 100644 index 000000000..853386bfb --- /dev/null +++ b/data/Templates/Stu3ToR4/TestScript/_Metadata.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "capability" : [ {{ msg.capability | to_array | batch_render: 'TestScript/Capability', 'msg' }} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/TestScript/_Setup.liquid b/data/Templates/Stu3ToR4/TestScript/_Setup.liquid new file mode 100644 index 000000000..ec6ec46ee --- /dev/null +++ b/data/Templates/Stu3ToR4/TestScript/_Setup.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "action" : [ {{ msg.action | to_array | batch_render: 'TestScript/Action', 'msg' }} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/TestScript/_Test.liquid b/data/Templates/Stu3ToR4/TestScript/_Test.liquid new file mode 100644 index 000000000..ec6ec46ee --- /dev/null +++ b/data/Templates/Stu3ToR4/TestScript/_Test.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "action" : [ {{ msg.action | to_array | batch_render: 'TestScript/Action', 'msg' }} ] +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/ValueSet.liquid b/data/Templates/Stu3ToR4/ValueSet.liquid new file mode 100644 index 000000000..a364f3570 --- /dev/null +++ b/data/Templates/Stu3ToR4/ValueSet.liquid @@ -0,0 +1,17 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.extensible -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-ValueSet.extensible", + "valueBoolean" : "{{msg.extensible}}" + }, + {% endif -%} + ], + "extensible" : "", +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/VisionPrescription.liquid b/data/Templates/Stu3ToR4/VisionPrescription.liquid new file mode 100644 index 000000000..492ea10d5 --- /dev/null +++ b/data/Templates/Stu3ToR4/VisionPrescription.liquid @@ -0,0 +1,25 @@ +{% mergeDiff msg -%} +{ + "contained" : [ {{msg.contained | to_array | batch_render : 'Resource', 'msg'}} ], + "extension" : [ + {% for e in msg.extension -%} + {{ e | to_json_string | default : '""'}}, + {% endfor -%} + {%if msg.reasonCodeableConcept -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-VisionPrescription.Reason", + "valueCodeableConcept" : {{msg.reasonCodeableConcept | to_json_string | default : '""' }} + }, + {% endif -%} + {%if msg.reasonReference -%} + { + "url" : "http://hl7.org/fhir/r3/StructureDefinition/extension-VisionPrescription.Reason", + "valueReference" : {{msg.reasonReference | to_json_string | default : '""' }} + }, + {% endif -%} + ], + "lensSpecification" : [ {{ msg.dispense | to_array | batch_render: 'VisionPrescription/Dispense', 'msg' }} ], + "dispense" : "", + "reason[x]" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/VisionPrescription/_Dispense.liquid b/data/Templates/Stu3ToR4/VisionPrescription/_Dispense.liquid new file mode 100644 index 000000000..d30ca2230 --- /dev/null +++ b/data/Templates/Stu3ToR4/VisionPrescription/_Dispense.liquid @@ -0,0 +1,13 @@ +{% mergeDiff msg -%} +{ + "prism" : [ + {% if msg.prism or msg.base -%} + { + "amount" : "{{msg.prism}}", + "base" : "{{msg.base}}" + }, + {% endif -%} + ], + "base" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/data/Templates/Stu3ToR4/metadata.json b/data/Templates/Stu3ToR4/metadata.json new file mode 100644 index 000000000..1d5a54d19 --- /dev/null +++ b/data/Templates/Stu3ToR4/metadata.json @@ -0,0 +1,3 @@ +{ + "type": "fhir" +} \ No newline at end of file diff --git a/docs/Filters-and-Tags.md b/docs/Filters-and-Tags.md index 350174ae7..ff723f5bc 100644 --- a/docs/Filters-and-Tags.md +++ b/docs/Filters-and-Tags.md @@ -109,8 +109,76 @@ DateTime filters usage examples: ## Tags -By default, Liquid provides a set of standard [tags](https://github.com/Shopify/liquid/wiki/Liquid-for-Designers#tags) to assist template creation. Besides these tags, FHIR Converter also provides some other tags that are useful in conversion, which are listed below. If these tags do not meet your needs, you can also write your own tags. +By default, Liquid provides a set of standard [tags](https://github.com/Shopify/liquid/wiki/Liquid-for-Designers#tags) to assist in template creation. Besides these tags, FHIR Converter also provides some other tags useful in conversion, which are listed below. If these tags do not meet your needs, you can write your own tags. | Tag | Description | Syntax | |-|-|-| | evaluate | Evaluates an ID with an ID generation template and input data | `{% evaluate patientId using 'Utils/GenerateId' obj:msg.ClinicalDocument.recordTarget.patientRole -%}` | +|mergeDiff|Merge diff JSON on input JSON data. The input data and difference in content should be a valid JSON format.| `{% mergeDiff msg -%}`
``
`{% endmergeDiff -%}` | + +**Examples to use mergeDiff** + +**Add or update an item:** +``` +{% mergeDiff msg -%} +{ + "added": "value" +} +{% endmergeDiff %} +``` + +**Remove an item:** +``` +{% mergeDiff msg -%} +{ + "removed": "" +} +{% endmergeDiff %} +``` +**Choice type item:** + +Using `[x]` to represent item with choice type. ( e.g. value[x] includes +valueString, valueReference, valueInteger, etc. ) +The key in diff json can use `[x]` to simplfy the template. + +Here is a sample to remove choice type element for "value": + + +``` +{% mergeDiff msg -%} +{ + "value[x]" : "" +} +{% endmergeDiff %} +``` + +**Examples for STU3 input** + +Since FHIR resources are in JSON format and since the FHIR STU3 and R4 versions of resources have the same structure and share most datetypes, the mergeDiff tag can be widely used in FHIR STU3 to R4 conversion. + +Here is an example to convert ChargeItem resource from STU3 to R4 : + + +ChargeItem.liquid: +``` +{% mergeDiff msg -%} +{ + "definitionUri" : {{msg.definition | to_json_string | default : '""'}}, + "performer" : [ {{ msg.participant | to_array | batch_render: 'ChargeItem/ChargeItemPerformer', 'msg' }} ], + "participant" : "", + "definition" : "" +} +{% endmergeDiff -%} +``` +_ChargeItemPerformer.liquid: +``` +{% mergeDiff msg -%} +{ + "function" : {{msg.role | to_json_string | default : '""'}}, + "role" : "" +} +{% endmergeDiff -%} +``` +In this sample, the field "definition" will be renamed to "definitionUri" and field "participant" will be renamed to "performer". All other other fields in the ChargeItem resource are copied as is from STU3 to R4. + + diff --git a/docs/Stu3R4-resources-differences.md b/docs/Stu3R4-resources-differences.md new file mode 100644 index 000000000..dc6f99176 --- /dev/null +++ b/docs/Stu3R4-resources-differences.md @@ -0,0 +1,65 @@ +# Resources Differences for STU3 to R4 +## Renamed Resources +|STU3|R4| +|--|--| +|BodySite|BodyStructure| +|EligibilityRequest|CoverageEligibilityRequest| +|EligibilityResponse|CoverageEligibilityResponse| +|Sequence|MolecularSequence| + +## STU3 Resources Removed from R4 +- DataElement +- DeviceComponent +- ExpansionProfile +- ImagingManifest +- ProcedureRequest +- ProcessRequest +- ProcessResponse +- ReferralRequest +- ServiceDefinition + +## Constraints with STU3 to R4 templates +Note the following constraints in the default templates: +- Code System and Terminology URLs are copied as is +- Extension fields are copied as is +- Cannot guarantee FHIR R4 cardinality constraints + +## New Resources Added to R4 +- BiologicallyDerivedProduct +- CatalogEntry +- ChargeItemDefinition +- DeviceDefinition +- EffectEvidenceSynthesis +- EventDefinition +- Evidence +- EvidenceVariable +- ExampleScenario +- ImmunizationEvaluation +- InsurancePlan +- Invoice +- MedicationKnowledge +- MedicinalProduct +- MedicinalProductAuthorization +- MedicinalProductContraindication +- MedicinalProductIndication +- MedicinalProductIngredient +- MedicinalProductInteraction +- MedicinalProductManufactured +- MedicinalProductPackaged +- MedicinalProductPharmaceutical +- MedicinalProductUndesirableEffect +- ObservationDefinition +- OrganizationAffiliation +- ResearchDefinition +- ResearchElementDefinition +- RiskEvidenceSynthesis +- ServiceRequest +- SpecimenDefinition +- SubstanceNucleicAcid +- SubstancePolymer +- SubstanceProtein +- SubstanceReferenceInformation +- SubstanceSourceMaterial +- SubstanceSpecification +- TerminologyCapabilities +- VerificationResult diff --git a/release.yml b/release.yml index 14f88295f..135c5fd19 100644 --- a/release.yml +++ b/release.yml @@ -16,8 +16,8 @@ variables: publishProject: "**/*Tool/*.csproj" functionalTests: "**/*FunctionalTests/*.csproj" buildConfiguration: 'Release' - major: 4 - minor: 6 + major: 5 + minor: 0 patch: 0 buildnum: $[counter(format('{0}.{1}.{2}',variables['major'],variables['minor'], variables['patch']), 1)] version: $(major).$(minor).$(patch).$(buildnum) diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/FunctionalTests.cs b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/FunctionalTests.cs index c96841c1a..17da98141 100644 --- a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/FunctionalTests.cs +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/FunctionalTests.cs @@ -229,6 +229,57 @@ public static IEnumerable GetDataForJson() }); } + public static IEnumerable GetDataForStu3ToR4() + { + var data = new List + { + // Maturity Level in R4 : N + "CapabilityStatement", + "CodeSystem", + "Observation", + "OperationDefinition", + "OperationOutcome", + "Parameters", + "Patient", + "StructureDefinition", + "ValueSet", + + // Maturity Level in R4 : 3 & 4 + "SearchParameter", + "ConceptMap", + "Provenance", + "AuditEvent", + "DocumentReference", + "MessageHeader", + "Subscription", + "Practitioner", + "Organization", + "Location", + "Appointment", + "AppointmentResponse", + "Schedule", + "Slot", + "AllergyIntolerance", + "Condition", + "Procedure", + "DiagnosticReport", + "ImagingStudy", + "QuestionnaireResponse", + "MedicationRequest", + "MedicationStatement", + "Medication", + "Immunization", + "Questionnaire", + + }; + return data.Select(item => new[] + { + item, + Path.Join(Constants.SampleDataDirectory, "Stu3", item + ".json"), + Path.Join(Constants.ExpectedDataFolder, "Stu3ToR4", item + ".json"), + }); + } + [Fact] public void GivenCcdaMessageForTimezoneTesting_WhenConvert_ExpectedResultShouldBeReturned() { @@ -320,6 +371,23 @@ public void GivenCcdaDocument_WhenConverting_ExpectedFhirResourceShouldBeReturne Assert.True(JToken.DeepEquals(expectedObject, actualObject)); } + [Theory] + [MemberData(nameof(GetDataForStu3ToR4))] + public void GivenStu3FhirData_WhenConverting_ExpectedR4FhirResourceShouldBeReturned(string rootTemplate, string inputFile, string expectedFile) + { + var fhirProcessor = new FhirProcessor(); + var templateDirectory = Path.Join(AppDomain.CurrentDomain.BaseDirectory, Constants.TemplateDirectory, "Stu3ToR4"); + + var inputContent = File.ReadAllText(inputFile); + var expectedContent = File.ReadAllText(expectedFile); + var actualContent = fhirProcessor.Convert(inputContent, rootTemplate, new TemplateProvider(templateDirectory, DataType.Fhir)); + + var expectedObject = JObject.Parse(expectedContent); + var actualObject = JObject.Parse(actualContent); + + Assert.True(JToken.DeepEquals(expectedObject, actualObject)); + } + [Theory] [MemberData(nameof(GetDataForJson))] public void GivenJsonData_WhenConverting_ExpectedFhirResourceShouldBeReturned(string rootTemplate, string inputFile, string expectedFile) diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/CCD/170.314B2_Amb_CCD-expected.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/CCD/170.314B2_Amb_CCD-expected.json index 62d424d1e..e82b2b98c 100644 --- a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/CCD/170.314B2_Amb_CCD-expected.json +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/CCD/170.314B2_Amb_CCD-expected.json @@ -1,1154 +1,1114 @@ { - "resourceType": "Bundle", - "type": "batch", - "entry": [ - { - "fullUrl": "urn:uuid:f7e787bb-8eaa-eab7-9bd7-ffc5bdc79260", - "resource": { - "resourceType": "Composition", - "id": "f7e787bb-8eaa-eab7-9bd7-ffc5bdc79260", - "identifier": { - "use": "official", - "value": "1.3.6.1.4.1.22812.3.99930.3.1" - }, - "status": "final", - "type": { - "coding": [ - { - "code": "34133-9", - "display": "SUMMARIZATION OF EPISODE NOTE", - "system": "http://loinc.org" - } - ] - }, - "date": "2013-01-30T08:00:51-05:00", - "title": "Continuity of Care Document", - "confidentiality": "V", - "attester": [ - { - "mode": "legal", - "time": "2013-01-30T08:00:51-05:00", - "party": { - "reference": "Practitioner/b14b88db-3f12-cd84-2ddb-b2e6cab1f3c0" - } - } - ], - "event": [ - { - "period": { - "start": "2012-08-15T09:00:51-05:00", - "end": "2013-01-30T08:00:51-05:00" - } - } - ], - "section": [ - { - "title": "Reason For Referral", - "text": { - "status": "generated", - "div": "
Reason For Referral
" - }, - "code": { - "coding": [ - { - "code": "42349-1", - "display": "Reason For Referral", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "Functional Status", - "text": { - "status": "generated", - "div": "
Functional Status
" - }, - "code": { - "coding": [ - { - "code": "47420-5", - "display": "Functional Status", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "Problems", - "text": { - "status": "generated", - "div": "
Problems
" - }, - "code": { - "coding": [ - { - "code": "11450-4", - "display": "Problem List", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "Medications", - "text": { - "status": "generated", - "div": "
Medications
" - }, - "code": { - "coding": [ - { - "code": "10160-0", - "display": "History of medication use", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "Allergies and Adverse Reactions", - "text": { - "status": "generated", - "div": "
Allergies and Adverse Reactions
" - }, - "code": { - "coding": [ - { - "code": "48765-2", - "display": "Allergies, adverse reactions, alerts", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "Immunization", - "text": { - "status": "generated", - "div": "
Immunization
" - }, - "code": { - "coding": [ - { - "code": "11369-6", - "display": "Immunizations", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "Social History", - "text": { - "status": "generated", - "div": "
Social History
" - }, - "code": { - "coding": [ - { - "code": "29762-2", - "display": "Social History", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "Vital Signs", - "text": { - "status": "generated", - "div": "
Vital Signs
" - }, - "code": { - "coding": [ - { - "code": "8716-3", - "display": "Vital Signs", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "Results", - "text": { - "status": "generated", - "div": "
Results
" - }, - "code": { - "coding": [ - { - "code": "30954-2", - "display": "Relevant diagnostic tests and/or laboratory data", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "Plan of Care", - "text": { - "status": "generated", - "div": "
Plan of Care
" - }, - "code": { - "coding": [ - { - "code": "18776-5", - "display": "Plan of Care", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "Instructions", - "text": { - "status": "generated", - "div": "
Instructions
" - }, - "code": { - "coding": [ - { - "code": "69730-0", - "display": "Instructions", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "Encounters", - "text": { - "status": "generated", - "div": "
Encounters
" - }, - "code": { - "coding": [ - { - "code": "46240-8", - "display": "Encounters", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - } - ], - "subject": { - "reference": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" - }, - "encounter": { - "reference": "Encounter/27f04c7f-8603-8e19-14b8-c8b5cee1f87f" - }, - "custodian": { - "reference": "Organization/e43c8521-43e8-af8f-23fe-a3ab2556e7fc" - }, - "author": [ - { - "reference": "Practitioner/b14b88db-3f12-cd84-2ddb-b2e6cab1f3c0" - }, - { - "reference": "Device/20249d1d-01be-7214-0e99-0950cbdbdbbd" - } - ] - }, - "request": { - "method": "PUT", - "url": "Composition/f7e787bb-8eaa-eab7-9bd7-ffc5bdc79260" - } + "resourceType": "Bundle", + "type": "batch", + "entry": [ + { + "fullUrl": "urn:uuid:f7e787bb-8eaa-eab7-9bd7-ffc5bdc79260", + "resource": { + "resourceType": "Composition", + "id": "f7e787bb-8eaa-eab7-9bd7-ffc5bdc79260", + "identifier": { + "use": "official", + "value": "1.3.6.1.4.1.22812.3.99930.3.1" }, - { - "fullUrl": "urn:uuid:b14b88db-3f12-cd84-2ddb-b2e6cab1f3c0", - "resource": { - "resourceType": "Practitioner", - "id": "b14b88db-3f12-cd84-2ddb-b2e6cab1f3c0", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner" - ] - }, - "identifier": [ - { - "system": "http://hl7.org/fhir/sid/us-npi", - "value": "1111111111" - }, - { - "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3", - "value": "91138" - } - ], - "name": [ - { - "family": "Khan", - "given": [ - "Samir" - ], - "prefix": [ - "Dr" - ] - } - ], - "address": [ - { - "line": [ - "Get Well Clinic", - "1004 Healthcare Dr." - ], - "city": "Portland", - "state": "OR", - "country": "US", - "postalCode": "97005" - } - ], - "telecom": [ - { - "system": "phone", - "value": "+1-(555)555-1004" - } - ] - }, - "request": { - "method": "PUT", - "url": "Practitioner/b14b88db-3f12-cd84-2ddb-b2e6cab1f3c0" + "status": "final", + "type": { + "coding": [ + { + "code": "34133-9", + "display": "SUMMARIZATION OF EPISODE NOTE", + "system": "http://loinc.org" } + ] }, - { - "fullUrl": "urn:uuid:27f04c7f-8603-8e19-14b8-c8b5cee1f87f", - "resource": { - "resourceType": "Encounter", - "id": "27f04c7f-8603-8e19-14b8-c8b5cee1f87f", - "status": "unknown", - "identifier": [ - { - "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.3.4", - "value": "5283815" - } - ], - "period": { - "start": "2012-08-15T09:00:51-05:00", - "end": "2013-01-30T08:00:51-05:00" + "date": "2013-01-30T08:00:51-05:00", + "title": "Continuity of Care Document", + "confidentiality": "V", + "attester": [ + { + "mode": "legal", + "time": "2013-01-30T08:00:51-05:00", + "party": { + "reference": "Practitioner/b14b88db-3f12-cd84-2ddb-b2e6cab1f3c0" + } + } + ], + "event": [ + { + "period": { + "start": "2012-08-15T09:00:51-05:00", + "end": "2013-01-30T08:00:51-05:00" + } + } + ], + "section": [ + { + "title": "Reason For Referral", + "text": { + "status": "generated", + "div": "
Reason For Referral
" + }, + "code": { + "coding": [ + { + "code": "42349-1", + "display": "Reason For Referral", + "system": "http://loinc.org" } + ] }, - "request": { - "method": "PUT", - "url": "Encounter/27f04c7f-8603-8e19-14b8-c8b5cee1f87f" - } - }, - { - "fullUrl": "urn:uuid:e43c8521-43e8-af8f-23fe-a3ab2556e7fc", - "resource": { - "resourceType": "Organization", - "id": "e43c8521-43e8-af8f-23fe-a3ab2556e7fc", - "identifier": [ - { - "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3", - "value": "3" - } - ], - "name": "Get Well Clinic", - "address": [ - { - "line": [ - "Get Well Clinic", - "1004 Healthcare Dr." - ], - "city": "Portland", - "state": "OR", - "country": "US", - "postalCode": "97005" - } - ], - "telecom": [ - { - "system": "phone", - "value": "+1-(555)555-1004" - } - ] + "mode": "snapshot" + }, + { + "title": "Functional Status", + "text": { + "status": "generated", + "div": "
Functional Status
" }, - "request": { - "method": "PUT", - "url": "Organization/e43c8521-43e8-af8f-23fe-a3ab2556e7fc" - } - }, - { - "fullUrl": "urn:uuid:20249d1d-01be-7214-0e99-0950cbdbdbbd", - "resource": { - "resourceType": "Device", - "id": "20249d1d-01be-7214-0e99-0950cbdbdbbd", - "identifier": [ - { - "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.3.3", - "value": "3" - } - ], - "type": { - "coding": [ - { - "display": "Enterprise EHR Clinical System 11.200.4210.17305" - } - ] - }, - "manufacturer": "Enterprise EHR Clinical System 11.200.4210.17305", - "version": [ - { - "value": "Enterprise EHR Clinical System 11.200.4210.17305; Transform 4.1.1.18" - } - ], - "owner": { - "reference": "Organization/e43c8521-43e8-af8f-23fe-a3ab2556e7fc" + "code": { + "coding": [ + { + "code": "47420-5", + "display": "Functional Status", + "system": "http://loinc.org" } + ] }, - "request": { - "method": "PUT", - "url": "Device/20249d1d-01be-7214-0e99-0950cbdbdbbd" - } - }, - { - "fullUrl": "urn:uuid:a656b459-dec5-7b46-77eb-41c20c9a5901", - "resource": { - "resourceType": "Patient", - "id": "a656b459-dec5-7b46-77eb-41c20c9a5901", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient" - ] - }, - "identifier": [ - { - "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3", - "value": "110107073916280" - } - ], - "name": [ - { - "family": "Everyman", - "given": [ - "Adam" - ] - } - ], - "birthDate": "1962-10-22", - "gender": "male", - "extension": [ - { - "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race", - "extension": [ - { - "url": "ombCategory", - "valueCoding": { - "code": "2106-3", - "display": "White" - } - }, - { - "url": "text", - "valueString": "White" - } - ] - }, - { - "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity", - "extension": [ - { - "url": "ombCategory", - "valueCoding": { - "code": "2186-5", - "display": "Not Hispanic or Latino" - } - }, - { - "url": "text", - "valueString": "Not Hispanic or Latino" - } - ] - } - ], - "address": [ - { - "use": "home", - "line": [ - "1234 Six Forks" - ], - "city": "Portland", - "state": "OR", - "country": "US", - "postalCode": "97005" - } - ], - "telecom": [ - { - "system": "phone", - "value": "+1-(555)555-3333", - "use": "home" - } - ], - "communication": [ - { - "language": { - "coding": [ - { - "system": "urn:ietf:bcp:47", - "code": "en", - "display": "English" - } - ] - }, - "preferred": true - } - ] + "mode": "snapshot" + }, + { + "title": "Problems", + "text": { + "status": "generated", + "div": "
Problems
" }, - "request": { - "method": "PUT", - "url": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" - } - }, - { - "fullUrl": "urn:uuid:2353559d-3d4c-a788-97c2-1e36d0473b16", - "resource": { - "resourceType": "AllergyIntolerance", - "id": "2353559d-3d4c-a788-97c2-1e36d0473b16", - "identifier": [ - { - "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.10.2", - "value": "613618700107" - }, - { - "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.10.2", - "value": "613618700109" - } - ], - "clinicalStatus": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical", - "code": "resolved" - } - ] - }, - "reaction": [ - { - "substance": { - "coding": [ - { - "code": "7982", - "display": "Penicillin G benzathine", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm" - } - ] - }, - "manifestation": [ - { - "coding": [ - { - "code": "55561003", - "display": "Active", - "system": "http://snomed.info/sct" - } - ] - } - ] - }, - { - "substance": { - "coding": [ - { - "code": "7982", - "display": "Penicillin G benzathine", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm" - } - ] - }, - "manifestation": [ - { - "coding": [ - { - "code": "247472004", - "display": "Hives", - "system": "http://snomed.info/sct" - } - ] - } - ] - } - ], - "onsetDateTime": "1998-01-10", - "patient": { - "reference": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" + "code": { + "coding": [ + { + "code": "11450-4", + "display": "Problem List", + "system": "http://loinc.org" } + ] }, - "request": { - "method": "PUT", - "url": "AllergyIntolerance/2353559d-3d4c-a788-97c2-1e36d0473b16" - } - }, - { - "fullUrl": "urn:uuid:ba4e86d0-f601-b3bc-fc62-3e0b72318e0e", - "resource": { - "resourceType": "AllergyIntolerance", - "id": "ba4e86d0-f601-b3bc-fc62-3e0b72318e0e", - "identifier": [ - { - "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.10.2", - "value": "624373800001" - }, - { - "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.10.2", - "value": "637073500005" - } - ], - "clinicalStatus": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical", - "code": "resolved" - } - ] - }, - "reaction": [ - { - "substance": { - "coding": [ - { - "code": "261000", - "display": "Codeine phosphate", - "system": "http://snomed.info/sct" - } - ] - }, - "manifestation": [ - { - "coding": [ - { - "code": "55561003", - "display": "Active", - "system": "http://snomed.info/sct" - } - ] - } - ] - }, - { - "substance": { - "coding": [ - { - "code": "261000", - "display": "Codeine phosphate", - "system": "http://snomed.info/sct" - } - ] - }, - "manifestation": [ - { - "coding": [ - { - "code": "422587007", - "display": "Nausea", - "system": "http://snomed.info/sct" - } - ] - } - ] - } - ], - "onsetDateTime": "2001-01-10T00:00:00-05:00", - "patient": { - "reference": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" + "mode": "snapshot" + }, + { + "title": "Medications", + "text": { + "status": "generated", + "div": "
Medications
" + }, + "code": { + "coding": [ + { + "code": "10160-0", + "display": "History of medication use", + "system": "http://loinc.org" } + ] }, - "request": { - "method": "PUT", - "url": "AllergyIntolerance/ba4e86d0-f601-b3bc-fc62-3e0b72318e0e" - } - }, - { - "fullUrl": "urn:uuid:fd272f60-b3b2-c1a4-2f66-c4d459abc715", - "resource": { - "resourceType": "MedicationStatement", - "id": "fd272f60-b3b2-c1a4-2f66-c4d459abc715", - "identifier": [ - { - "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.9", - "value": "659122500005" - }, - { - "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.9", - "value": "659122500007" - } - ], - "dosage": [ - { - "doseAndRate": [ - { - "doseQuantity": { - "value": 2, - "unit": "Puffs" - } - } - ] - } - ], - "subject": { - "reference": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" - }, - "medicationReference": { - "reference": "Medication/d7ad4ff0-a6d7-9116-c7b9-d101b8e94a64" + "mode": "snapshot" + }, + { + "title": "Allergies and Adverse Reactions", + "text": { + "status": "generated", + "div": "
Allergies and Adverse Reactions
" + }, + "code": { + "coding": [ + { + "code": "48765-2", + "display": "Allergies, adverse reactions, alerts", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + }, + { + "title": "Immunization", + "text": { + "status": "generated", + "div": "
Immunization
" + }, + "code": { + "coding": [ + { + "code": "11369-6", + "display": "Immunizations", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + }, + { + "title": "Social History", + "text": { + "status": "generated", + "div": "
Social History
" + }, + "code": { + "coding": [ + { + "code": "29762-2", + "display": "Social History", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + }, + { + "title": "Vital Signs", + "text": { + "status": "generated", + "div": "
Vital Signs
" + }, + "code": { + "coding": [ + { + "code": "8716-3", + "display": "Vital Signs", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + }, + { + "title": "Results", + "text": { + "status": "generated", + "div": "
Results
" + }, + "code": { + "coding": [ + { + "code": "30954-2", + "display": "Relevant diagnostic tests and/or laboratory data", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + }, + { + "title": "Plan of Care", + "text": { + "status": "generated", + "div": "
Plan of Care
" + }, + "code": { + "coding": [ + { + "code": "18776-5", + "display": "Plan of Care", + "system": "http://loinc.org" } + ] }, - "request": { - "method": "PUT", - "url": "MedicationStatement/fd272f60-b3b2-c1a4-2f66-c4d459abc715" + "mode": "snapshot" + }, + { + "title": "Instructions", + "text": { + "status": "generated", + "div": "
Instructions
" + }, + "code": { + "coding": [ + { + "code": "69730-0", + "display": "Instructions", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + }, + { + "title": "Encounters", + "text": { + "status": "generated", + "div": "
Encounters
" + }, + "code": { + "coding": [ + { + "code": "46240-8", + "display": "Encounters", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + } + ], + "subject": { + "reference": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" + }, + "encounter": { + "reference": "Encounter/27f04c7f-8603-8e19-14b8-c8b5cee1f87f" + }, + "custodian": { + "reference": "Organization/e43c8521-43e8-af8f-23fe-a3ab2556e7fc" + }, + "author": [ + { + "reference": "Practitioner/b14b88db-3f12-cd84-2ddb-b2e6cab1f3c0" + }, + { + "reference": "Device/20249d1d-01be-7214-0e99-0950cbdbdbbd" + } + ] + }, + "request": { + "method": "PUT", + "url": "Composition/f7e787bb-8eaa-eab7-9bd7-ffc5bdc79260" + } + }, + { + "fullUrl": "urn:uuid:b14b88db-3f12-cd84-2ddb-b2e6cab1f3c0", + "resource": { + "resourceType": "Practitioner", + "id": "b14b88db-3f12-cd84-2ddb-b2e6cab1f3c0", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner" + ] + }, + "identifier": [ + { + "system": "http://hl7.org/fhir/sid/us-npi", + "value": "1111111111" + }, + { + "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3", + "value": "91138" + } + ], + "name": [ + { + "family": "Khan", + "given": [ + "Samir" + ], + "prefix": [ + "Dr" + ] + } + ], + "address": [ + { + "line": [ + "Get Well Clinic", + "1004 Healthcare Dr." + ], + "city": "Portland", + "state": "OR", + "country": "US", + "postalCode": "97005" + } + ], + "telecom": [ + { + "system": "phone", + "value": "+1-(555)555-1004" + } + ] + }, + "request": { + "method": "PUT", + "url": "Practitioner/b14b88db-3f12-cd84-2ddb-b2e6cab1f3c0" + } + }, + { + "fullUrl": "urn:uuid:27f04c7f-8603-8e19-14b8-c8b5cee1f87f", + "resource": { + "resourceType": "Encounter", + "id": "27f04c7f-8603-8e19-14b8-c8b5cee1f87f", + "status": "unknown", + "identifier": [ + { + "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.3.4", + "value": "5283815" + } + ], + "period": { + "start": "2012-08-15T09:00:51-05:00", + "end": "2013-01-30T08:00:51-05:00" + } + }, + "request": { + "method": "PUT", + "url": "Encounter/27f04c7f-8603-8e19-14b8-c8b5cee1f87f" + } + }, + { + "fullUrl": "urn:uuid:e43c8521-43e8-af8f-23fe-a3ab2556e7fc", + "resource": { + "resourceType": "Organization", + "id": "e43c8521-43e8-af8f-23fe-a3ab2556e7fc", + "identifier": [ + { + "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3", + "value": "3" + } + ], + "name": "Get Well Clinic", + "address": [ + { + "line": [ + "Get Well Clinic", + "1004 Healthcare Dr." + ], + "city": "Portland", + "state": "OR", + "country": "US", + "postalCode": "97005" + } + ], + "telecom": [ + { + "system": "phone", + "value": "+1-(555)555-1004" + } + ] + }, + "request": { + "method": "PUT", + "url": "Organization/e43c8521-43e8-af8f-23fe-a3ab2556e7fc" + } + }, + { + "fullUrl": "urn:uuid:20249d1d-01be-7214-0e99-0950cbdbdbbd", + "resource": { + "resourceType": "Device", + "id": "20249d1d-01be-7214-0e99-0950cbdbdbbd", + "identifier": [ + { + "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.3.3", + "value": "3" + } + ], + "type": { + "coding": [ + { + "display": "Enterprise EHR Clinical System 11.200.4210.17305" } + ] + }, + "manufacturer": "Enterprise EHR Clinical System 11.200.4210.17305", + "version": [ + { + "value": "Enterprise EHR Clinical System 11.200.4210.17305; Transform 4.1.1.18" + } + ], + "owner": { + "reference": "Organization/e43c8521-43e8-af8f-23fe-a3ab2556e7fc" + } + }, + "request": { + "method": "PUT", + "url": "Device/20249d1d-01be-7214-0e99-0950cbdbdbbd" + } + }, + { + "fullUrl": "urn:uuid:a656b459-dec5-7b46-77eb-41c20c9a5901", + "resource": { + "resourceType": "Patient", + "id": "a656b459-dec5-7b46-77eb-41c20c9a5901", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient" + ] }, - { - "fullUrl": "urn:uuid:d7ad4ff0-a6d7-9116-c7b9-d101b8e94a64", - "resource": { - "resourceType": "Medication", - "id": "d7ad4ff0-a6d7-9116-c7b9-d101b8e94a64", - "code": { - "coding": [ - { - "code": "573621", - "display": "Albuterol 0.09 MG/ACTUAT metered dose", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm" - } - ] + "identifier": [ + { + "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3", + "value": "110107073916280" + } + ], + "name": [ + { + "family": "Everyman", + "given": [ + "Adam" + ] + } + ], + "birthDate": "1962-10-22", + "gender": "male", + "extension": [ + { + "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race", + "extension": [ + { + "url": "ombCategory", + "valueCoding": { + "code": "2106-3", + "display": "White" } + }, + { + "url": "text", + "valueString": "White" + } + ] + }, + { + "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity", + "extension": [ + { + "url": "ombCategory", + "valueCoding": { + "code": "2186-5", + "display": "Not Hispanic or Latino" + } + }, + { + "url": "text", + "valueString": "Not Hispanic or Latino" + } + ] + } + ], + "address": [ + { + "use": "home", + "line": [ + "1234 Six Forks" + ], + "city": "Portland", + "state": "OR", + "country": "US", + "postalCode": "97005" + } + ], + "telecom": [ + { + "system": "phone", + "value": "+1-(555)555-3333", + "use": "home" + } + ], + "communication": [ + { + "language": { + "coding": [ + { + "system": "urn:ietf:bcp:47", + "code": "en", + "display": "English" + } + ] }, - "request": { - "method": "PUT", - "url": "Medication/d7ad4ff0-a6d7-9116-c7b9-d101b8e94a64" + "preferred": true + } + ] + }, + "request": { + "method": "PUT", + "url": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" + } + }, + { + "fullUrl": "urn:uuid:2353559d-3d4c-a788-97c2-1e36d0473b16", + "resource": { + "resourceType": "AllergyIntolerance", + "id": "2353559d-3d4c-a788-97c2-1e36d0473b16", + "identifier": [ + { + "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.10.2", + "value": "613618700107" + }, + { + "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.10.2", + "value": "613618700109" + } + ], + "clinicalStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical", + "code": "resolved" } + ] }, - { - "fullUrl": "urn:uuid:b5ab02bc-3b05-b81a-d770-fcac49ba807d", - "resource": { - "resourceType": "Condition", - "id": "b5ab02bc-3b05-b81a-d770-fcac49ba807d", - "identifier": [ - { - "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.1.2.1", - "value": "615028800003" - }, - { - "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.1.2.1", - "value": "659935200001" - } - ], - "clinicalStatus": { - "coding": [ - { - "code": "55561003", - "display": "Active", - "system": "http://snomed.info/sct" - } - ] - }, - "code": { - "coding": [ - { - "code": "64109004", - "display": "Costochondritis", - "system": "http://snomed.info/sct" - } - ] - }, - "onsetDateTime": "2012-08-15", - "subject": { - "reference": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" + "reaction": [ + { + "substance": { + "coding": [ + { + "code": "7982", + "display": "Penicillin G benzathine", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm" + } + ] + } + }, + { + "substance": { + "coding": [ + { + "code": "7982", + "display": "Penicillin G benzathine", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm" } + ] }, - "request": { - "method": "PUT", - "url": "Condition/b5ab02bc-3b05-b81a-d770-fcac49ba807d" + "manifestation": [ + { + "coding": [ + { + "code": "247472004", + "display": "Hives", + "system": "http://snomed.info/sct" + } + ] + } + ] + } + ], + "onsetDateTime": "1998-01-10", + "patient": { + "reference": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" + } + }, + "request": { + "method": "PUT", + "url": "AllergyIntolerance/2353559d-3d4c-a788-97c2-1e36d0473b16" + } + }, + { + "fullUrl": "urn:uuid:ba4e86d0-f601-b3bc-fc62-3e0b72318e0e", + "resource": { + "resourceType": "AllergyIntolerance", + "id": "ba4e86d0-f601-b3bc-fc62-3e0b72318e0e", + "identifier": [ + { + "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.10.2", + "value": "624373800001" + }, + { + "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.10.2", + "value": "637073500005" + } + ], + "clinicalStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical", + "code": "resolved" } + ] }, - { - "fullUrl": "urn:uuid:2337a2f4-1a3c-23ea-bb95-d73049e9204f", - "resource": { - "resourceType": "Condition", - "id": "2337a2f4-1a3c-23ea-bb95-d73049e9204f", - "identifier": [ - { - "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.1.2.1", - "value": "636842200007" - }, - { - "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.1.2.1", - "value": "660100900011" - } - ], - "clinicalStatus": { - "coding": [ - { - "code": "55561003", - "display": "Active", - "system": "http://snomed.info/sct" - } - ] - }, - "code": { - "coding": [ - { - "code": "195967001", - "display": "Asthma", - "system": "http://snomed.info/sct" - } - ] - }, - "onsetDateTime": "2011-09-25T01:00:00-04:00", - "subject": { - "reference": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" + "reaction": [ + { + "substance": { + "coding": [ + { + "code": "261000", + "display": "Codeine phosphate", + "system": "http://snomed.info/sct" } + ] + } + }, + { + "substance": { + "coding": [ + { + "code": "261000", + "display": "Codeine phosphate", + "system": "http://snomed.info/sct" + } + ] }, - "request": { - "method": "PUT", - "url": "Condition/2337a2f4-1a3c-23ea-bb95-d73049e9204f" + "manifestation": [ + { + "coding": [ + { + "code": "422587007", + "display": "Nausea", + "system": "http://snomed.info/sct" + } + ] + } + ] + } + ], + "onsetDateTime": "2001-01-10T00:00:00-05:00", + "patient": { + "reference": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" + } + }, + "request": { + "method": "PUT", + "url": "AllergyIntolerance/ba4e86d0-f601-b3bc-fc62-3e0b72318e0e" + } + }, + { + "fullUrl": "urn:uuid:fd272f60-b3b2-c1a4-2f66-c4d459abc715", + "resource": { + "resourceType": "MedicationStatement", + "id": "fd272f60-b3b2-c1a4-2f66-c4d459abc715", + "identifier": [ + { + "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.9", + "value": "659122500005" + }, + { + "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.9", + "value": "659122500007" + } + ], + "dosage": [ + { + "doseAndRate": [ + { + "doseQuantity": { + "value": 2, + "unit": "Puffs" + } + } + ] + } + ], + "subject": { + "reference": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" + }, + "medicationReference": { + "reference": "Medication/d7ad4ff0-a6d7-9116-c7b9-d101b8e94a64" + } + }, + "request": { + "method": "PUT", + "url": "MedicationStatement/fd272f60-b3b2-c1a4-2f66-c4d459abc715" + } + }, + { + "fullUrl": "urn:uuid:d7ad4ff0-a6d7-9116-c7b9-d101b8e94a64", + "resource": { + "resourceType": "Medication", + "id": "d7ad4ff0-a6d7-9116-c7b9-d101b8e94a64", + "code": { + "coding": [ + { + "code": "573621", + "display": "Albuterol 0.09 MG/ACTUAT metered dose", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm" } + ] + } + }, + "request": { + "method": "PUT", + "url": "Medication/d7ad4ff0-a6d7-9116-c7b9-d101b8e94a64" + } + }, + { + "fullUrl": "urn:uuid:b5ab02bc-3b05-b81a-d770-fcac49ba807d", + "resource": { + "resourceType": "Condition", + "id": "b5ab02bc-3b05-b81a-d770-fcac49ba807d", + "identifier": [ + { + "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.1.2.1", + "value": "615028800003" + }, + { + "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.1.2.1", + "value": "659935200001" + } + ], + "code": { + "coding": [ + { + "code": "64109004", + "display": "Costochondritis", + "system": "http://snomed.info/sct" + } + ] }, - { - "fullUrl": "urn:uuid:377bc352-6e5e-a8e5-d8ec-53c7631bb889", - "resource": { - "resourceType": "DiagnosticReport", - "id": "377bc352-6e5e-a8e5-d8ec-53c7631bb889", - "identifier": [ - { - "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.5", - "value": "659988700005" - } - ], - "status": "final", - "code": { - "coding": [ - { - "code": "82374", - "display": "CO2", - "system": "http://www.ama-assn.org/go/cpt" - } - ] - }, - "effectiveDateTime": "2012-08-15", - "subject": { - "reference": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" - }, - "performer": [ - { - "reference": "Practitioner/7aa34e67-c584-ddc5-64b5-17988d4d9fab" - } - ], - "result": [ - { - "reference": "Observation/57b3e387-7bc2-a581-a668-b22cace62a33" - } - ] - }, - "request": { - "method": "PUT", - "url": "DiagnosticReport/377bc352-6e5e-a8e5-d8ec-53c7631bb889" + "onsetDateTime": "2012-08-15", + "subject": { + "reference": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" + } + }, + "request": { + "method": "PUT", + "url": "Condition/b5ab02bc-3b05-b81a-d770-fcac49ba807d" + } + }, + { + "fullUrl": "urn:uuid:2337a2f4-1a3c-23ea-bb95-d73049e9204f", + "resource": { + "resourceType": "Condition", + "id": "2337a2f4-1a3c-23ea-bb95-d73049e9204f", + "identifier": [ + { + "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.1.2.1", + "value": "636842200007" + }, + { + "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.1.2.1", + "value": "660100900011" + } + ], + "code": { + "coding": [ + { + "code": "195967001", + "display": "Asthma", + "system": "http://snomed.info/sct" } + ] }, - { - "fullUrl": "urn:uuid:7aa34e67-c584-ddc5-64b5-17988d4d9fab", - "resource": { - "resourceType": "Practitioner", - "id": "7aa34e67-c584-ddc5-64b5-17988d4d9fab", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner" - ] - }, - "identifier": [ - { - "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3", - "value": "3333" - } - ], - "name": [ - { - "family": "Nightingale", - "given": [ - "Nancy" - ], - "suffix": [ - "RN" - ] - } - ], - "address": [ - { - "line": [ - "Get Well Clinic", - "1004 Healthcare Dr." - ], - "city": "Portland", - "state": "OR", - "country": "US", - "postalCode": "97005" - } - ], - "telecom": [ - { - "system": "phone", - "value": "+1-(555)555-1014" - } - ] - }, - "request": { - "method": "PUT", - "url": "Practitioner/7aa34e67-c584-ddc5-64b5-17988d4d9fab" + "onsetDateTime": "2011-09-25T01:00:00-04:00", + "subject": { + "reference": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" + } + }, + "request": { + "method": "PUT", + "url": "Condition/2337a2f4-1a3c-23ea-bb95-d73049e9204f" + } + }, + { + "fullUrl": "urn:uuid:377bc352-6e5e-a8e5-d8ec-53c7631bb889", + "resource": { + "resourceType": "DiagnosticReport", + "id": "377bc352-6e5e-a8e5-d8ec-53c7631bb889", + "identifier": [ + { + "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.5", + "value": "659988700005" + } + ], + "status": "final", + "code": { + "coding": [ + { + "code": "82374", + "display": "CO2", + "system": "http://www.ama-assn.org/go/cpt" } + ] }, - { - "fullUrl": "urn:uuid:57b3e387-7bc2-a581-a668-b22cace62a33", - "resource": { - "resourceType": "Observation", - "id": "57b3e387-7bc2-a581-a668-b22cace62a33", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" - ] - }, - "identifier": [ - { - "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.5", - "value": "6599887000031" - }, - { - "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.5", - "value": "6599889000031" - } - ], - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/observation-category", - "code": "laboratory" - } - ] - } - ], - "status": "final", - "code": { - "coding": [ - { - "code": "2028-9", - "display": "CO2", - "system": "http://loinc.org" - } - ] - }, - "effectiveDateTime": "2012-08-15", - "valueQuantity": { - "value": 25, - "unit": "mmol/L" - }, - "subject": { - "reference": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" - } - }, - "request": { - "method": "PUT", - "url": "Observation/57b3e387-7bc2-a581-a668-b22cace62a33" + "effectiveDateTime": "2012-08-15", + "subject": { + "reference": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" + }, + "performer": [ + { + "reference": "Practitioner/7aa34e67-c584-ddc5-64b5-17988d4d9fab" + } + ], + "result": [ + { + "reference": "Observation/57b3e387-7bc2-a581-a668-b22cace62a33" + } + ] + }, + "request": { + "method": "PUT", + "url": "DiagnosticReport/377bc352-6e5e-a8e5-d8ec-53c7631bb889" + } + }, + { + "fullUrl": "urn:uuid:7aa34e67-c584-ddc5-64b5-17988d4d9fab", + "resource": { + "resourceType": "Practitioner", + "id": "7aa34e67-c584-ddc5-64b5-17988d4d9fab", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner" + ] + }, + "identifier": [ + { + "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3", + "value": "3333" + } + ], + "name": [ + { + "family": "Nightingale", + "given": [ + "Nancy" + ], + "suffix": [ + "RN" + ] + } + ], + "address": [ + { + "line": [ + "Get Well Clinic", + "1004 Healthcare Dr." + ], + "city": "Portland", + "state": "OR", + "country": "US", + "postalCode": "97005" + } + ], + "telecom": [ + { + "system": "phone", + "value": "+1-(555)555-1014" + } + ] + }, + "request": { + "method": "PUT", + "url": "Practitioner/7aa34e67-c584-ddc5-64b5-17988d4d9fab" + } + }, + { + "fullUrl": "urn:uuid:57b3e387-7bc2-a581-a668-b22cace62a33", + "resource": { + "resourceType": "Observation", + "id": "57b3e387-7bc2-a581-a668-b22cace62a33", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" + ] + }, + "identifier": [ + { + "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.5", + "value": "6599887000031" + }, + { + "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.5", + "value": "6599889000031" + } + ], + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory" + } + ] + } + ], + "status": "final", + "code": { + "coding": [ + { + "code": "2028-9", + "display": "CO2", + "system": "http://loinc.org" } + ] }, - { - "fullUrl": "urn:uuid:5e203a24-4f4d-92ad-1afd-67edbeb18004", - "resource": { - "resourceType": "Observation", - "id": "5e203a24-4f4d-92ad-1afd-67edbeb18004", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" - ] - }, - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/observation-category", - "code": "social-history" - } - ] - } - ], - "status": "final", - "code": { - "coding": [ - { - "code": "ASSERTION", - "display": "Assertion", - "system": "urn:oid:2.16.840.1.113883.5.4" - } - ] - }, - "effectivePeriod": { - "start": "2012" - }, - "valueCodeableConcept": { - "coding": [ - { - "code": "266919005", - "display": "Never smoker", - "system": "http://snomed.info/sct" - } - ] - }, - "subject": { - "reference": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" - } - }, - "request": { - "method": "PUT", - "url": "Observation/5e203a24-4f4d-92ad-1afd-67edbeb18004" + "effectiveDateTime": "2012-08-15", + "valueQuantity": { + "value": 25, + "unit": "mmol/L" + }, + "subject": { + "reference": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" + } + }, + "request": { + "method": "PUT", + "url": "Observation/57b3e387-7bc2-a581-a668-b22cace62a33" + } + }, + { + "fullUrl": "urn:uuid:5e203a24-4f4d-92ad-1afd-67edbeb18004", + "resource": { + "resourceType": "Observation", + "id": "5e203a24-4f4d-92ad-1afd-67edbeb18004", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" + ] + }, + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "social-history" + } + ] + } + ], + "status": "final", + "code": { + "coding": [ + { + "code": "ASSERTION", + "display": "Assertion", + "system": "urn:oid:2.16.840.1.113883.5.4" } + ] }, - { - "fullUrl": "urn:uuid:fe7a527f-e3af-84b6-65ac-248dcfd7a9ac", - "resource": { - "resourceType": "Observation", - "id": "fe7a527f-e3af-84b6-65ac-248dcfd7a9ac", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" - ] - }, - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/observation-category", - "code": "social-history" - } - ] - } - ], - "status": "final", - "code": { - "coding": [ - { - "code": "ASSERTION", - "display": "Assertion", - "system": "urn:oid:2.16.840.1.113883.5.4" - } - ] - }, - "effectivePeriod": { - "start": "2012" - }, - "valueCodeableConcept": { - "coding": [ - { - "code": "428041000124106", - "display": "Current some day smoker", - "system": "http://snomed.info/sct" - } - ] - }, - "subject": { - "reference": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" - } - }, - "request": { - "method": "PUT", - "url": "Observation/fe7a527f-e3af-84b6-65ac-248dcfd7a9ac" + "effectivePeriod": { + "start": "2012" + }, + "valueCodeableConcept": { + "coding": [ + { + "code": "266919005", + "display": "Never smoker", + "system": "http://snomed.info/sct" } + ] }, - { - "fullUrl": "urn:uuid:8e360cad-38ee-2b8e-4a1a-c566621e7e05", - "resource": { - "resourceType": "Immunization", - "id": "8e360cad-38ee-2b8e-4a1a-c566621e7e05", - "identifier": [ - { - "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.4", - "value": "637382500009" - }, - { - "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.4", - "value": "637382500011" - } - ], - "occurrenceDateTime": "2012-08-15", - "vaccineCode": { - "coding": [ - { - "code": "88", - "display": "Influenza virus vaccine", - "system": "urn:oid:2.16.840.1.113883.12.292" - } - ] - }, - "status": "completed", - "route": { - "coding": [ - { - "code": "C28161", - "display": "INTRAMUSCULAR", - "system": "urn:oid:2.16.840.1.113883.3.26.1.1" - } - ] - }, - "site": { - "coding": [ - { - "code": "368208006", - "display": "Left Arm", - "system": "http://snomed.info/sct" - } - ] - }, - "patient": { - "reference": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" - } - }, - "request": { - "method": "PUT", - "url": "Immunization/8e360cad-38ee-2b8e-4a1a-c566621e7e05" + "subject": { + "reference": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" + } + }, + "request": { + "method": "PUT", + "url": "Observation/5e203a24-4f4d-92ad-1afd-67edbeb18004" + } + }, + { + "fullUrl": "urn:uuid:fe7a527f-e3af-84b6-65ac-248dcfd7a9ac", + "resource": { + "resourceType": "Observation", + "id": "fe7a527f-e3af-84b6-65ac-248dcfd7a9ac", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" + ] + }, + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "social-history" + } + ] + } + ], + "status": "final", + "code": { + "coding": [ + { + "code": "ASSERTION", + "display": "Assertion", + "system": "urn:oid:2.16.840.1.113883.5.4" } + ] }, - { - "fullUrl": "urn:uuid:d354a122-c1fc-fecf-b620-ed4918aa1e63", - "resource": { - "resourceType": "DocumentReference", - "id": "d354a122-c1fc-fecf-b620-ed4918aa1e63", - "type": { - "coding": [ - { - "code": "34133-9", - "display": "SUMMARIZATION OF EPISODE NOTE", - "system": "http://loinc.org" - } - ] - }, - "date": "2022-03-25T13:36:42.099Z", - "status": "current", - "content": [ - { - "attachment": { - "contentType": "text/plain", - "data": "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", - "hash": "ZDAzOGQzZWY5MjIxOGY1NDg2Y2YwNmFiOWQ2NTdhODYxYzQ4ZGM4OQ==" - } - } - ] - }, - "request": { - "method": "PUT", - "url": "DocumentReference/d354a122-c1fc-fecf-b620-ed4918aa1e63" + "effectivePeriod": { + "start": "2012" + }, + "valueCodeableConcept": { + "coding": [ + { + "code": "428041000124106", + "display": "Current some day smoker", + "system": "http://snomed.info/sct" } + ] + }, + "subject": { + "reference": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" } - ] + }, + "request": { + "method": "PUT", + "url": "Observation/fe7a527f-e3af-84b6-65ac-248dcfd7a9ac" + } + }, + { + "fullUrl": "urn:uuid:8e360cad-38ee-2b8e-4a1a-c566621e7e05", + "resource": { + "resourceType": "Immunization", + "id": "8e360cad-38ee-2b8e-4a1a-c566621e7e05", + "identifier": [ + { + "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.4", + "value": "637382500009" + }, + { + "system": "urn:oid:1.3.6.1.4.1.22812.3.99930.3.4.4", + "value": "637382500011" + } + ], + "occurrenceDateTime": "2012-08-15", + "vaccineCode": { + "coding": [ + { + "code": "88", + "display": "Influenza virus vaccine", + "system": "urn:oid:2.16.840.1.113883.12.292" + } + ] + }, + "status": "completed", + "route": { + "coding": [ + { + "code": "C28161", + "display": "INTRAMUSCULAR", + "system": "urn:oid:2.16.840.1.113883.3.26.1.1" + } + ] + }, + "site": { + "coding": [ + { + "code": "368208006", + "display": "Left Arm", + "system": "http://snomed.info/sct" + } + ] + }, + "patient": { + "reference": "Patient/a656b459-dec5-7b46-77eb-41c20c9a5901" + } + }, + "request": { + "method": "PUT", + "url": "Immunization/8e360cad-38ee-2b8e-4a1a-c566621e7e05" + } + }, + { + "fullUrl": "urn:uuid:d354a122-c1fc-fecf-b620-ed4918aa1e63", + "resource": { + "resourceType": "DocumentReference", + "id": "d354a122-c1fc-fecf-b620-ed4918aa1e63", + "type": { + "coding": [ + { + "code": "34133-9", + "display": "SUMMARIZATION OF EPISODE NOTE", + "system": "http://loinc.org" + } + ] + }, + "date": "2022-04-22T05:35:40.147Z", + "status": "current", + "content": [ + { + "attachment": { + "contentType": "text/plain", + "data": "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", + "hash": "ZDAzOGQzZWY5MjIxOGY1NDg2Y2YwNmFiOWQ2NTdhODYxYzQ4ZGM4OQ==" + } + } + ] + }, + "request": { + "method": "PUT", + "url": "DocumentReference/d354a122-c1fc-fecf-b620-ed4918aa1e63" + } + } + ] } \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/CCD/C-CDA_R2-1_CCD.xml-expected.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/CCD/C-CDA_R2-1_CCD.xml-expected.json index cafc91f01..ed4a4af9f 100644 --- a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/CCD/C-CDA_R2-1_CCD.xml-expected.json +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/CCD/C-CDA_R2-1_CCD.xml-expected.json @@ -603,17 +603,6 @@ } ] }, - "manifestation": [ - { - "coding": [ - { - "code": "371924009", - "display": "Moderate to severe", - "system": "http://snomed.info/sct" - } - ] - } - ], "severity": "severe" }, { @@ -702,17 +691,6 @@ } ] }, - "manifestation": [ - { - "coding": [ - { - "code": "255604002", - "display": "Mild", - "system": "http://snomed.info/sct" - } - ] - } - ], "severity": "mild" } ], @@ -2717,7 +2695,6 @@ } ] }, - "contributedToDeath": true, "onsetAge": { "value": 40, "system": "http://unitsofmeasure.org", @@ -3120,7 +3097,7 @@ } ] }, - "date": "2022-03-25T08:35:30.332Z", + "date": "2022-04-22T05:36:09.346Z", "status": "current", "content": [ { diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/ConsultationNote/Consultation_Note-expected.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/ConsultationNote/Consultation_Note-expected.json index 6aca2261e..1db477764 100644 --- a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/ConsultationNote/Consultation_Note-expected.json +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/ConsultationNote/Consultation_Note-expected.json @@ -642,28 +642,6 @@ "url": "AllergyIntolerance/4f4be2e3-e836-5ee4-bee6-93b4c1eb8982" } }, - { - "fullUrl": "urn:uuid:023fffb6-ab9c-78cf-4631-e45bbd101825", - "resource": { - "resourceType": "AllergyIntolerance", - "id": "023fffb6-ab9c-78cf-4631-e45bbd101825", - "clinicalStatus": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical", - "code": "active" - } - ] - }, - "patient": { - "reference": "Patient/b6d7e193-338c-f580-36eb-156f27ed3541" - } - }, - "request": { - "method": "PUT", - "url": "AllergyIntolerance/023fffb6-ab9c-78cf-4631-e45bbd101825" - } - }, { "fullUrl": "urn:uuid:80b41489-d434-1d18-476b-c6c08eaf45b3", "resource": { @@ -716,17 +694,7 @@ } ] }, - "manifestation": [ - { - "coding": [ - { - "code": "255604002", - "display": "Mild", - "system": "http://snomed.info/sct" - } - ] - } - ] + "severity": "mild" } ], "patient": { @@ -749,15 +717,6 @@ "value": "urn:uuid:ab1791b0-5c71-11db-b0de-0800200c9a66" } ], - "clinicalStatus": { - "coding": [ - { - "code": "55561003", - "display": "Active", - "system": "http://snomed.info/sct" - } - ] - }, "code": { "coding": [ { @@ -2416,7 +2375,7 @@ } ] }, - "date": "2022-03-25T08:35:31.086Z", + "date": "2022-04-22T05:36:39.437Z", "status": "current", "content": [ { diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/DischargeSummary/Discharge_Summary-expected.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/DischargeSummary/Discharge_Summary-expected.json index 6226c1ecf..59e7686bf 100644 --- a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/DischargeSummary/Discharge_Summary-expected.json +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/DischargeSummary/Discharge_Summary-expected.json @@ -1580,7 +1580,6 @@ } ] }, - "contributedToDeath": true, "onsetAge": { "value": 6, "system": "http://unitsofmeasure.org", @@ -1672,7 +1671,7 @@ } ] }, - "date": "2022-03-25T08:35:32.587Z", + "date": "2022-04-22T05:37:02.935Z", "status": "current", "content": [ { diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/HistoryandPhysical/History_and_Physical-expected.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/HistoryandPhysical/History_and_Physical-expected.json index 786a28e76..3c345b3cb 100644 --- a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/HistoryandPhysical/History_and_Physical-expected.json +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/HistoryandPhysical/History_and_Physical-expected.json @@ -1,2037 +1,2036 @@ { - "resourceType": "Bundle", - "type": "batch", - "entry": [ - { - "fullUrl": "urn:uuid:b16a925c-1df5-20f4-759b-3f4b3452b5cb", - "resource": { - "resourceType": "Composition", - "id": "b16a925c-1df5-20f4-759b-3f4b3452b5cb", - "identifier": { - "use": "official", - "value": "2.16.840.1.113883.19.5.99999.1" - }, - "status": "final", - "type": { - "coding": [ - { - "code": "34117-2", - "display": "History and Physical Note", - "system": "http://loinc.org" - } - ] - }, - "date": "2012-09-16T19:05:00-04:00", - "title": "Community Health and Hospitals: History & Physical", - "confidentiality": "N", - "attester": [ - { - "mode": "legal", - "time": "2009-02-27T13:00:00-05:00", - "party": { - "reference": "Practitioner/151bd63c-93e9-9838-dd94-f74d3b63be52" - } - } - ], - "section": [ - { - "title": "ALLERGIES, ADVERSE REACTIONS, ALERTS", - "text": { - "status": "generated", - "div": "
ALLERGIES, ADVERSE REACTIONS, ALERTS
" - }, - "code": { - "coding": [ - { - "code": "48765-2", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "ASSESSMENT", - "text": { - "status": "generated", - "div": "
ASSESSMENT
" - }, - "code": { - "coding": [ - { - "code": "51848-0", - "display": "ASSESSMENT", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "REASON FOR VISIT/CHIEF COMPLAINT", - "text": { - "status": "generated", - "div": "
REASON FOR VISIT/CHIEF COMPLAINT
" - }, - "code": { - "coding": [ - { - "code": "46239-0", - "display": "REASON FOR VISIT + CHIEF COMPLAINT", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "FAMILY HISTORY", - "text": { - "status": "generated", - "div": "
FAMILY HISTORY
" - }, - "code": { - "coding": [ - { - "code": "10157-6", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "GENERAL STATUS", - "text": { - "status": "generated", - "div": "
GENERAL STATUS
" - }, - "code": { - "coding": [ - { - "code": "10210-3", - "display": "GENERAL STATUS", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "PAST MEDICAL HISTORY", - "text": { - "status": "generated", - "div": "
PAST MEDICAL HISTORY
" - }, - "code": { - "coding": [ - { - "code": "11348-0", - "display": "HISTORY OF PAST ILLNESS", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "HISTORY OF PRESENT ILLNESS", - "text": { - "status": "generated", - "div": "
HISTORY OF PRESENT ILLNESS
" - }, - "code": { - "coding": [ - { - "code": "10164-2", - "display": "HISTORY OF PRESENT ILLNESS", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "IMMUNIZATIONS", - "text": { - "status": "generated", - "div": "
IMMUNIZATIONS
" - }, - "code": { - "coding": [ - { - "code": "11369-6", - "display": "History of immunizations", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "MEDICATIONS", - "text": { - "status": "generated", - "div": "
MEDICATIONS
" - }, - "code": { - "coding": [ - { - "code": "10160-0", - "display": "HISTORY OF MEDICATION USE", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "PHYSICAL EXAMINATION", - "text": { - "status": "generated", - "div": "
PHYSICAL EXAMINATION
" - }, - "code": { - "coding": [ - { - "code": "29545-1", - "display": "PHYSICAL FINDINGS", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "PLAN OF CARE", - "text": { - "status": "generated", - "div": "
PLAN OF CARE
" - }, - "code": { - "coding": [ - { - "code": "18776-5", - "display": "Treatment plan", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "PROBLEMS", - "text": { - "status": "generated", - "div": "
PROBLEMS
" - }, - "code": { - "coding": [ - { - "code": "11450-4", - "display": "PROBLEM LIST", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "PROCEDURES", - "text": { - "status": "generated", - "div": "
PROCEDURES
" - }, - "code": { - "coding": [ - { - "code": "47519-4", - "display": "HISTORY OF PROCEDURES", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "RESULTS", - "text": { - "status": "generated", - "div": "
RESULTS
" - }, - "code": { - "coding": [ - { - "code": "30954-2", - "display": "RESULTS", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "REVIEW OF SYSTEMS", - "text": { - "status": "generated", - "div": "
REVIEW OF SYSTEMS
" - }, - "code": { - "coding": [ - { - "code": "10187-3", - "display": "REVIEW OF SYSTEMS", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "SOCIAL HISTORY", - "text": { - "status": "generated", - "div": "
SOCIAL HISTORY
" - }, - "code": { - "coding": [ - { - "code": "29762-2", - "display": "Social History", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - }, - { - "title": "VITAL SIGNS", - "text": { - "status": "generated", - "div": "
VITAL SIGNS
" - }, - "code": { - "coding": [ - { - "code": "8716-3", - "display": "VITAL SIGNS", - "system": "http://loinc.org" - } - ] - }, - "mode": "snapshot" - } - ], - "subject": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" - }, - "encounter": { - "reference": "Encounter/786d8ce8-8ab9-f2f3-9418-aa9de43e7f79" - }, - "custodian": { - "reference": "Organization/ccf335f7-e962-e711-c0ac-aca0f1f41b74" - }, - "author": [ - { - "reference": "Practitioner/b818f780-0177-affe-d9d2-2aefb7adeee2" - } - ] - }, - "request": { - "method": "PUT", - "url": "Composition/b16a925c-1df5-20f4-759b-3f4b3452b5cb" - } + "resourceType": "Bundle", + "type": "batch", + "entry": [ + { + "fullUrl": "urn:uuid:b16a925c-1df5-20f4-759b-3f4b3452b5cb", + "resource": { + "resourceType": "Composition", + "id": "b16a925c-1df5-20f4-759b-3f4b3452b5cb", + "identifier": { + "use": "official", + "value": "2.16.840.1.113883.19.5.99999.1" }, - { - "fullUrl": "urn:uuid:151bd63c-93e9-9838-dd94-f74d3b63be52", - "resource": { - "resourceType": "Practitioner", - "id": "151bd63c-93e9-9838-dd94-f74d3b63be52", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner" - ] - }, - "identifier": [ - { - "system": "http://hl7.org/fhir/sid/us-npi", - "value": "999999999" - } - ], - "name": [ - { - "family": "Seven", - "given": [ - "Henry" - ] - } - ], - "address": [ - { - "line": [ - "1001 Village Avenue" - ], - "city": "Portland", - "state": "OR", - "country": "US", - "postalCode": "99123" - } - ], - "telecom": [ - { - "system": "phone", - "value": "555-555-1002", - "use": "work" - } - ] - }, - "request": { - "method": "PUT", - "url": "Practitioner/151bd63c-93e9-9838-dd94-f74d3b63be52" + "status": "final", + "type": { + "coding": [ + { + "code": "34117-2", + "display": "History and Physical Note", + "system": "http://loinc.org" } + ] }, - { - "fullUrl": "urn:uuid:786d8ce8-8ab9-f2f3-9418-aa9de43e7f79", - "resource": { - "resourceType": "Encounter", - "id": "786d8ce8-8ab9-f2f3-9418-aa9de43e7f79", - "status": "unknown", - "class": { - "code": "99213", - "display": "Evaluation and Management", - "system": "http://www.ama-assn.org/go/cpt" - }, - "identifier": [ - { - "system": "urn:oid:2.16.840.1.113883.19", - "value": "9937012" - } - ], - "period": { - "start": "2009-02-27T13:00:00-05:00", - "end": "2009-02-27T13:00:00-05:00" - }, - "location": [ - { - "location": { - "reference": "Location/6dfdc7c6-e225-71eb-cec1-75870e529061" - } - } - ] - }, - "request": { - "method": "PUT", - "url": "Encounter/786d8ce8-8ab9-f2f3-9418-aa9de43e7f79" + "date": "2012-09-16T19:05:00-04:00", + "title": "Community Health and Hospitals: History & Physical", + "confidentiality": "N", + "attester": [ + { + "mode": "legal", + "time": "2009-02-27T13:00:00-05:00", + "party": { + "reference": "Practitioner/151bd63c-93e9-9838-dd94-f74d3b63be52" } - }, - { - "fullUrl": "urn:uuid:6dfdc7c6-e225-71eb-cec1-75870e529061", - "resource": { - "resourceType": "Location", - "id": "6dfdc7c6-e225-71eb-cec1-75870e529061" + } + ], + "section": [ + { + "title": "ALLERGIES, ADVERSE REACTIONS, ALERTS", + "text": { + "status": "generated", + "div": "
ALLERGIES, ADVERSE REACTIONS, ALERTS
" + }, + "code": { + "coding": [ + { + "code": "48765-2", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + }, + { + "title": "ASSESSMENT", + "text": { + "status": "generated", + "div": "
ASSESSMENT
" + }, + "code": { + "coding": [ + { + "code": "51848-0", + "display": "ASSESSMENT", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + }, + { + "title": "REASON FOR VISIT/CHIEF COMPLAINT", + "text": { + "status": "generated", + "div": "
REASON FOR VISIT/CHIEF COMPLAINT
" + }, + "code": { + "coding": [ + { + "code": "46239-0", + "display": "REASON FOR VISIT + CHIEF COMPLAINT", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + }, + { + "title": "FAMILY HISTORY", + "text": { + "status": "generated", + "div": "
FAMILY HISTORY
" + }, + "code": { + "coding": [ + { + "code": "10157-6", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + }, + { + "title": "GENERAL STATUS", + "text": { + "status": "generated", + "div": "
GENERAL STATUS
" + }, + "code": { + "coding": [ + { + "code": "10210-3", + "display": "GENERAL STATUS", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + }, + { + "title": "PAST MEDICAL HISTORY", + "text": { + "status": "generated", + "div": "
PAST MEDICAL HISTORY
" + }, + "code": { + "coding": [ + { + "code": "11348-0", + "display": "HISTORY OF PAST ILLNESS", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + }, + { + "title": "HISTORY OF PRESENT ILLNESS", + "text": { + "status": "generated", + "div": "
HISTORY OF PRESENT ILLNESS
" + }, + "code": { + "coding": [ + { + "code": "10164-2", + "display": "HISTORY OF PRESENT ILLNESS", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + }, + { + "title": "IMMUNIZATIONS", + "text": { + "status": "generated", + "div": "
IMMUNIZATIONS
" + }, + "code": { + "coding": [ + { + "code": "11369-6", + "display": "History of immunizations", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + }, + { + "title": "MEDICATIONS", + "text": { + "status": "generated", + "div": "
MEDICATIONS
" + }, + "code": { + "coding": [ + { + "code": "10160-0", + "display": "HISTORY OF MEDICATION USE", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + }, + { + "title": "PHYSICAL EXAMINATION", + "text": { + "status": "generated", + "div": "
PHYSICAL EXAMINATION
" + }, + "code": { + "coding": [ + { + "code": "29545-1", + "display": "PHYSICAL FINDINGS", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + }, + { + "title": "PLAN OF CARE", + "text": { + "status": "generated", + "div": "
PLAN OF CARE
" + }, + "code": { + "coding": [ + { + "code": "18776-5", + "display": "Treatment plan", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + }, + { + "title": "PROBLEMS", + "text": { + "status": "generated", + "div": "
PROBLEMS
" + }, + "code": { + "coding": [ + { + "code": "11450-4", + "display": "PROBLEM LIST", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + }, + { + "title": "PROCEDURES", + "text": { + "status": "generated", + "div": "
PROCEDURES
" + }, + "code": { + "coding": [ + { + "code": "47519-4", + "display": "HISTORY OF PROCEDURES", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + }, + { + "title": "RESULTS", + "text": { + "status": "generated", + "div": "
RESULTS
" }, - "request": { - "method": "PUT", - "url": "Location/6dfdc7c6-e225-71eb-cec1-75870e529061" + "code": { + "coding": [ + { + "code": "30954-2", + "display": "RESULTS", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + }, + { + "title": "REVIEW OF SYSTEMS", + "text": { + "status": "generated", + "div": "
REVIEW OF SYSTEMS
" + }, + "code": { + "coding": [ + { + "code": "10187-3", + "display": "REVIEW OF SYSTEMS", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + }, + { + "title": "SOCIAL HISTORY", + "text": { + "status": "generated", + "div": "
SOCIAL HISTORY
" + }, + "code": { + "coding": [ + { + "code": "29762-2", + "display": "Social History", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + }, + { + "title": "VITAL SIGNS", + "text": { + "status": "generated", + "div": "
VITAL SIGNS
" + }, + "code": { + "coding": [ + { + "code": "8716-3", + "display": "VITAL SIGNS", + "system": "http://loinc.org" + } + ] + }, + "mode": "snapshot" + } + ], + "subject": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + }, + "encounter": { + "reference": "Encounter/786d8ce8-8ab9-f2f3-9418-aa9de43e7f79" + }, + "custodian": { + "reference": "Organization/ccf335f7-e962-e711-c0ac-aca0f1f41b74" + }, + "author": [ + { + "reference": "Practitioner/b818f780-0177-affe-d9d2-2aefb7adeee2" + } + ] + }, + "request": { + "method": "PUT", + "url": "Composition/b16a925c-1df5-20f4-759b-3f4b3452b5cb" + } + }, + { + "fullUrl": "urn:uuid:151bd63c-93e9-9838-dd94-f74d3b63be52", + "resource": { + "resourceType": "Practitioner", + "id": "151bd63c-93e9-9838-dd94-f74d3b63be52", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner" + ] + }, + "identifier": [ + { + "system": "http://hl7.org/fhir/sid/us-npi", + "value": "999999999" + } + ], + "name": [ + { + "family": "Seven", + "given": [ + "Henry" + ] + } + ], + "address": [ + { + "line": [ + "1001 Village Avenue" + ], + "city": "Portland", + "state": "OR", + "country": "US", + "postalCode": "99123" + } + ], + "telecom": [ + { + "system": "phone", + "value": "555-555-1002", + "use": "work" + } + ] + }, + "request": { + "method": "PUT", + "url": "Practitioner/151bd63c-93e9-9838-dd94-f74d3b63be52" + } + }, + { + "fullUrl": "urn:uuid:786d8ce8-8ab9-f2f3-9418-aa9de43e7f79", + "resource": { + "resourceType": "Encounter", + "id": "786d8ce8-8ab9-f2f3-9418-aa9de43e7f79", + "status": "unknown", + "class": { + "code": "99213", + "display": "Evaluation and Management", + "system": "http://www.ama-assn.org/go/cpt" + }, + "identifier": [ + { + "system": "urn:oid:2.16.840.1.113883.19", + "value": "9937012" + } + ], + "period": { + "start": "2009-02-27T13:00:00-05:00", + "end": "2009-02-27T13:00:00-05:00" + }, + "location": [ + { + "location": { + "reference": "Location/6dfdc7c6-e225-71eb-cec1-75870e529061" } + } + ] + }, + "request": { + "method": "PUT", + "url": "Encounter/786d8ce8-8ab9-f2f3-9418-aa9de43e7f79" + } + }, + { + "fullUrl": "urn:uuid:6dfdc7c6-e225-71eb-cec1-75870e529061", + "resource": { + "resourceType": "Location", + "id": "6dfdc7c6-e225-71eb-cec1-75870e529061" + }, + "request": { + "method": "PUT", + "url": "Location/6dfdc7c6-e225-71eb-cec1-75870e529061" + } + }, + { + "fullUrl": "urn:uuid:ccf335f7-e962-e711-c0ac-aca0f1f41b74", + "resource": { + "resourceType": "Organization", + "id": "ccf335f7-e962-e711-c0ac-aca0f1f41b74", + "identifier": [ + { + "system": "http://hl7.org/fhir/sid/us-npi", + "value": "99999999" + } + ], + "name": "Community Health and Hospitals", + "address": [ + { + "use": "work", + "line": [ + "1002 Healthcare Drive " + ], + "city": "Portland", + "state": "OR", + "country": "US", + "postalCode": "99123" + } + ], + "telecom": [ + { + "system": "phone", + "value": "555-555-1002", + "use": "work" + } + ] + }, + "request": { + "method": "PUT", + "url": "Organization/ccf335f7-e962-e711-c0ac-aca0f1f41b74" + } + }, + { + "fullUrl": "urn:uuid:b818f780-0177-affe-d9d2-2aefb7adeee2", + "resource": { + "resourceType": "Practitioner", + "id": "b818f780-0177-affe-d9d2-2aefb7adeee2", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner" + ] }, - { - "fullUrl": "urn:uuid:ccf335f7-e962-e711-c0ac-aca0f1f41b74", - "resource": { - "resourceType": "Organization", - "id": "ccf335f7-e962-e711-c0ac-aca0f1f41b74", - "identifier": [ - { - "system": "http://hl7.org/fhir/sid/us-npi", - "value": "99999999" - } - ], - "name": "Community Health and Hospitals", - "address": [ - { - "use": "work", - "line": [ - "1002 Healthcare Drive " - ], - "city": "Portland", - "state": "OR", - "country": "US", - "postalCode": "99123" - } - ], - "telecom": [ - { - "system": "phone", - "value": "555-555-1002", - "use": "work" - } - ] - }, - "request": { - "method": "PUT", - "url": "Organization/ccf335f7-e962-e711-c0ac-aca0f1f41b74" + "identifier": [ + { + "system": "http://hl7.org/fhir/sid/us-npi", + "value": "99999999" + } + ], + "name": [ + { + "family": "Seven", + "given": [ + "Henry" + ] + } + ], + "address": [ + { + "line": [ + "1002 Healthcare Drive " + ], + "city": "Portland", + "state": "OR", + "country": "US", + "postalCode": "99123" + } + ], + "telecom": [ + { + "system": "phone", + "value": "555-555-1002", + "use": "work" + } + ], + "qualification": [ + { + "code": { + "coding": [ + { + "code": "200000000X", + "display": "Allopathic & Osteopathic Physicians", + "system": "http://nucc.org/provider-taxonomy" + } + ] } + } + ] + }, + "request": { + "method": "PUT", + "url": "Practitioner/b818f780-0177-affe-d9d2-2aefb7adeee2" + } + }, + { + "fullUrl": "urn:uuid:5510eaa6-2ad2-b82b-248b-aba749e28fa1", + "resource": { + "resourceType": "Patient", + "id": "5510eaa6-2ad2-b82b-248b-aba749e28fa1", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient" + ] }, - { - "fullUrl": "urn:uuid:b818f780-0177-affe-d9d2-2aefb7adeee2", - "resource": { - "resourceType": "Practitioner", - "id": "b818f780-0177-affe-d9d2-2aefb7adeee2", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner" - ] - }, - "identifier": [ - { - "system": "http://hl7.org/fhir/sid/us-npi", - "value": "99999999" - } - ], - "name": [ - { - "family": "Seven", - "given": [ - "Henry" - ] - } - ], - "address": [ - { - "line": [ - "1002 Healthcare Drive " - ], - "city": "Portland", - "state": "OR", - "country": "US", - "postalCode": "99123" - } - ], - "telecom": [ - { - "system": "phone", - "value": "555-555-1002", - "use": "work" - } - ], - "qualification": [ - { - "code": { - "coding": [ - { - "code": "200000000X", - "display": "Allopathic & Osteopathic Physicians", - "system": "http://nucc.org/provider-taxonomy" - } - ] - } - } - ] + "identifier": [ + { + "system": "urn:oid:2.16.840.1.113883.19.5.99999.2", + "value": "998991" + }, + { + "system": "http://hl7.org/fhir/sid/us-ssn", + "value": "111-00-2330" + } + ], + "name": [ + { + "use": "usual", + "family": "Jones", + "given": [ + "Isabella", + "Isa" + ] + } + ], + "birthDate": "2005-05-01", + "gender": "female", + "extension": [ + { + "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race", + "extension": [ + { + "url": "detailed", + "valueCoding": { + "code": "1966-1", + "display": "Aleut" + } + }, + { + "url": "text", + "valueString": "Aleut" + } + ] + }, + { + "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity", + "extension": [ + { + "url": "ombCategory", + "valueCoding": { + "code": "2186-5", + "display": "Not Hispanic or Latino" + } + }, + { + "url": "text", + "valueString": "Not Hispanic or Latino" + } + ] + } + ], + "address": [ + { + "use": "home", + "line": [ + "1357 Amber Drive" + ], + "city": "Beaverton", + "state": "OR", + "country": "US", + "postalCode": "97867" + } + ], + "telecom": [ + { + "system": "phone", + "value": "(816)276-6909", + "use": "home" + } + ], + "communication": [ + { + "language": { + "coding": [ + { + "system": "urn:ietf:bcp:47", + "code": "en", + "display": "English" + } + ] }, - "request": { - "method": "PUT", - "url": "Practitioner/b818f780-0177-affe-d9d2-2aefb7adeee2" + "preferred": true + } + ] + }, + "request": { + "method": "PUT", + "url": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + } + }, + { + "fullUrl": "urn:uuid:ee674bd9-634f-7bfb-de2e-510f1248a374", + "resource": { + "resourceType": "RelatedPerson", + "id": "ee674bd9-634f-7bfb-de2e-510f1248a374", + "relationship": [ + { + "coding": [ + { + "code": "GRPRN", + "display": "Grandparent", + "system": "urn:oid:2.16.840.1.113883.5.111" + } + ] + } + ], + "name": [ + { + "family": "Jones", + "given": [ + "Ralph" + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "(816)276-6909", + "use": "home" + } + ], + "address": [ + { + "use": "home", + "line": [ + "1357 Amber Drive" + ], + "city": "Beaverton", + "state": "OR", + "country": "US", + "postalCode": "97867" + } + ], + "patient": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + } + }, + "request": { + "method": "PUT", + "url": "RelatedPerson/ee674bd9-634f-7bfb-de2e-510f1248a374" + } + }, + { + "fullUrl": "urn:uuid:50ccb6ac-dfb5-e450-492d-59897da92127", + "resource": { + "resourceType": "FamilyMemberHistory", + "id": "50ccb6ac-dfb5-e450-492d-59897da92127", + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:9123aedf-5315-4c3a-aeef-1e98319cc6b5" + } + ], + "status": "completed", + "relationship": { + "coding": [ + { + "code": "9947008", + "display": "Biological father", + "system": "http://snomed.info/sct" } + ] }, - { - "fullUrl": "urn:uuid:5510eaa6-2ad2-b82b-248b-aba749e28fa1", - "resource": { - "resourceType": "Patient", - "id": "5510eaa6-2ad2-b82b-248b-aba749e28fa1", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient" - ] - }, - "identifier": [ - { - "system": "urn:oid:2.16.840.1.113883.19.5.99999.2", - "value": "998991" - }, - { - "system": "http://hl7.org/fhir/sid/us-ssn", - "value": "111-00-2330" - } - ], - "name": [ - { - "use": "usual", - "family": "Jones", - "given": [ - "Isabella", - "Isa" - ] - } - ], - "birthDate": "2005-05-01", - "gender": "female", - "extension": [ - { - "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race", - "extension": [ - { - "url": "detailed", - "valueCoding": { - "code": "1966-1", - "display": "Aleut" - } - }, - { - "url": "text", - "valueString": "Aleut" - } - ] - }, - { - "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity", - "extension": [ - { - "url": "ombCategory", - "valueCoding": { - "code": "2186-5", - "display": "Not Hispanic or Latino" - } - }, - { - "url": "text", - "valueString": "Not Hispanic or Latino" - } - ] - } - ], - "address": [ - { - "use": "home", - "line": [ - "1357 Amber Drive" - ], - "city": "Beaverton", - "state": "OR", - "country": "US", - "postalCode": "97867" - } - ], - "telecom": [ - { - "system": "phone", - "value": "(816)276-6909", - "use": "home" - } - ], - "communication": [ - { - "language": { - "coding": [ - { - "system": "urn:ietf:bcp:47", - "code": "en", - "display": "English" - } - ] - }, - "preferred": true - } - ] - }, - "request": { - "method": "PUT", - "url": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + "sex": { + "coding": [ + { + "code": "M", + "display": "Male", + "system": "urn:oid:2.16.840.1.113883.5.1" } + ] }, - { - "fullUrl": "urn:uuid:ee674bd9-634f-7bfb-de2e-510f1248a374", - "resource": { - "resourceType": "RelatedPerson", - "id": "ee674bd9-634f-7bfb-de2e-510f1248a374", - "relationship": [ - { - "coding": [ - { - "code": "GRPRN", - "display": "Grandparent", - "system": "urn:oid:2.16.840.1.113883.5.111" - } - ] - } - ], - "name": [ - { - "family": "Jones", - "given": [ - "Ralph" - ] - } - ], - "telecom": [ - { - "system": "phone", - "value": "(816)276-6909", - "use": "home" - } - ], - "address": [ - { - "use": "home", - "line": [ - "1357 Amber Drive" - ], - "city": "Beaverton", - "state": "OR", - "country": "US", - "postalCode": "97867" - } - ], - "patient": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + "bornString": "1910", + "condition": [ + { + "code": { + "coding": [ + { + "code": "22298006", + "display": "Myocardial infarction", + "system": "http://snomed.info/sct" } + ] }, - "request": { - "method": "PUT", - "url": "RelatedPerson/ee674bd9-634f-7bfb-de2e-510f1248a374" + "contributedToDeath": true, + "onsetAge": { + "value": 57, + "system": "http://unitsofmeasure.org", + "code": "a" } - }, - { - "fullUrl": "urn:uuid:50ccb6ac-dfb5-e450-492d-59897da92127", - "resource": { - "resourceType": "FamilyMemberHistory", - "id": "50ccb6ac-dfb5-e450-492d-59897da92127", - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:9123aedf-5315-4c3a-aeef-1e98319cc6b5" - } - ], - "status": "completed", - "relationship": { - "coding": [ - { - "code": "9947008", - "display": "Biological father", - "system": "http://snomed.info/sct" - } - ] - }, - "sex": { - "coding": [ - { - "code": "M", - "display": "Male", - "system": "urn:oid:2.16.840.1.113883.5.1" - } - ] - }, - "bornString": "1910", - "condition": [ - { - "code": { - "coding": [ - { - "code": "22298006", - "display": "Myocardial infarction", - "system": "http://snomed.info/sct" - } - ] - }, - "contributedToDeath": true, - "onsetAge": { - "value": 57, - "system": "http://unitsofmeasure.org", - "code": "a" - } - }, - { - "code": { - "coding": [ - { - "code": "46635009", - "display": "Diabetes mellitus type 1", - "system": "http://snomed.info/sct" - } - ] - }, - "contributedToDeath": true, - "onsetAge": { - "value": 40, - "system": "http://unitsofmeasure.org", - "code": "a" - } - } - ], - "patient": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + }, + { + "code": { + "coding": [ + { + "code": "46635009", + "display": "Diabetes mellitus type 1", + "system": "http://snomed.info/sct" } + ] }, - "request": { - "method": "PUT", - "url": "FamilyMemberHistory/50ccb6ac-dfb5-e450-492d-59897da92127" + "onsetAge": { + "value": 40, + "system": "http://unitsofmeasure.org", + "code": "a" } - }, - { - "fullUrl": "urn:uuid:7fb981b6-d4b7-2688-c7a7-4bb629844a3a", - "resource": { - "resourceType": "MedicationStatement", - "id": "7fb981b6-d4b7-2688-c7a7-4bb629844a3a", - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:cdbd33f0-6cde-11db-9fe1-0800200c9a66" - } - ], - "dosage": [ - { - "doseAndRate": [ - { - "doseQuantity": { - "value": 1, - "unit": "mg/actuat" - } - } - ] - } - ], - "subject": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" - }, - "medicationReference": { - "reference": "Medication/917b88e2-d186-dfbd-12c1-0e096f2f105d" + } + ], + "patient": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + } + }, + "request": { + "method": "PUT", + "url": "FamilyMemberHistory/50ccb6ac-dfb5-e450-492d-59897da92127" + } + }, + { + "fullUrl": "urn:uuid:7fb981b6-d4b7-2688-c7a7-4bb629844a3a", + "resource": { + "resourceType": "MedicationStatement", + "id": "7fb981b6-d4b7-2688-c7a7-4bb629844a3a", + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:cdbd33f0-6cde-11db-9fe1-0800200c9a66" + } + ], + "dosage": [ + { + "doseAndRate": [ + { + "doseQuantity": { + "value": 1, + "unit": "mg/actuat" } - }, - "request": { - "method": "PUT", - "url": "MedicationStatement/7fb981b6-d4b7-2688-c7a7-4bb629844a3a" + } + ] + } + ], + "subject": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + }, + "medicationReference": { + "reference": "Medication/917b88e2-d186-dfbd-12c1-0e096f2f105d" + } + }, + "request": { + "method": "PUT", + "url": "MedicationStatement/7fb981b6-d4b7-2688-c7a7-4bb629844a3a" + } + }, + { + "fullUrl": "urn:uuid:917b88e2-d186-dfbd-12c1-0e096f2f105d", + "resource": { + "resourceType": "Medication", + "id": "917b88e2-d186-dfbd-12c1-0e096f2f105d", + "code": { + "coding": [ + { + "code": "573621", + "display": "Proventil 0.09 MG/ACTUAT inhalant solution", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm" } + ] + } + }, + "request": { + "method": "PUT", + "url": "Medication/917b88e2-d186-dfbd-12c1-0e096f2f105d" + } + }, + { + "fullUrl": "urn:uuid:be809b86-cc24-5e4d-be31-4ccaec2b2b31", + "resource": { + "resourceType": "MedicationRequest", + "id": "be809b86-cc24-5e4d-be31-4ccaec2b2b31", + "intent": "order", + "status": "completed", + "subject": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" }, - { - "fullUrl": "urn:uuid:917b88e2-d186-dfbd-12c1-0e096f2f105d", - "resource": { - "resourceType": "Medication", - "id": "917b88e2-d186-dfbd-12c1-0e096f2f105d", - "code": { - "coding": [ - { - "code": "573621", - "display": "Proventil 0.09 MG/ACTUAT inhalant solution", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm" - } - ] - } - }, - "request": { - "method": "PUT", - "url": "Medication/917b88e2-d186-dfbd-12c1-0e096f2f105d" + "medicationReference": { + "reference": "Medication/917b88e2-d186-dfbd-12c1-0e096f2f105d" + }, + "requester": { + "reference": "Practitioner/029fabd5-fdc5-c9c6-fbf1-0ede210c2410" + } + }, + "request": { + "method": "PUT", + "url": "MedicationRequest/be809b86-cc24-5e4d-be31-4ccaec2b2b31" + } + }, + { + "fullUrl": "urn:uuid:029fabd5-fdc5-c9c6-fbf1-0ede210c2410", + "resource": { + "resourceType": "Practitioner", + "id": "029fabd5-fdc5-c9c6-fbf1-0ede210c2410", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:2a620155-9d11-439e-92b3-5d9815fe4de8" + } + ], + "name": [ + { + "family": "Seven", + "given": [ + "Henry" + ], + "prefix": [ + "Dr." + ] + } + ] + }, + "request": { + "method": "PUT", + "url": "Practitioner/029fabd5-fdc5-c9c6-fbf1-0ede210c2410" + } + }, + { + "fullUrl": "urn:uuid:cca5f885-584d-d6e2-8a2b-5cea177bf04d", + "resource": { + "resourceType": "MedicationRequest", + "id": "cca5f885-584d-d6e2-8a2b-5cea177bf04d", + "identifier": [ + { + "system": "urn:oid:1.2.3.4.56789.1", + "value": "cb734647-fc99-424c-a864-7e3cda82e704" + } + ], + "intent": "order", + "status": "completed", + "subject": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + }, + "medicationReference": { + "reference": "Medication/917b88e2-d186-dfbd-12c1-0e096f2f105d" + } + }, + "request": { + "method": "PUT", + "url": "MedicationRequest/cca5f885-584d-d6e2-8a2b-5cea177bf04d" + } + }, + { + "fullUrl": "urn:uuid:b5dc3327-d0b0-cf0c-13a3-27bae542448a", + "resource": { + "resourceType": "DiagnosticReport", + "id": "b5dc3327-d0b0-cf0c-13a3-27bae542448a", + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:7d5a02b0-67a4-11db-bd13-0800200c9a66" + } + ], + "status": "final", + "code": { + "coding": [ + { + "code": "43789009", + "display": "CBC WO DIFFERENTIAL", + "system": "http://snomed.info/sct" } + ] }, - { - "fullUrl": "urn:uuid:be809b86-cc24-5e4d-be31-4ccaec2b2b31", - "resource": { - "resourceType": "MedicationRequest", - "id": "be809b86-cc24-5e4d-be31-4ccaec2b2b31", - "intent": "order", - "status": "completed", - "subject": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" - }, - "medicationReference": { - "reference": "Medication/917b88e2-d186-dfbd-12c1-0e096f2f105d" - }, - "requester": { - "reference": "Practitioner/029fabd5-fdc5-c9c6-fbf1-0ede210c2410" - } - }, - "request": { - "method": "PUT", - "url": "MedicationRequest/be809b86-cc24-5e4d-be31-4ccaec2b2b31" + "subject": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + }, + "result": [ + { + "reference": "Observation/628c88e9-b821-4ba9-6ff8-f872e5485b83" + }, + { + "reference": "Observation/3795fd3b-410a-950e-0f29-c94f9aef7f86" + }, + { + "reference": "Observation/4f7a2f4c-c628-f7e5-fb5a-4f8c1ba3d1a7" + } + ] + }, + "request": { + "method": "PUT", + "url": "DiagnosticReport/b5dc3327-d0b0-cf0c-13a3-27bae542448a" + } + }, + { + "fullUrl": "urn:uuid:628c88e9-b821-4ba9-6ff8-f872e5485b83", + "resource": { + "resourceType": "Observation", + "id": "628c88e9-b821-4ba9-6ff8-f872e5485b83", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:107c2dc0-67a5-11db-bd13-0800200c9a66" + } + ], + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory" + } + ] + } + ], + "status": "final", + "code": { + "coding": [ + { + "code": "30313-1", + "display": "HGB", + "system": "http://loinc.org" } + ] + }, + "effectiveDateTime": "2000-03-23T14:30:00-05:00", + "valueQuantity": { + "value": 13.2, + "unit": "g/dl" }, - { - "fullUrl": "urn:uuid:029fabd5-fdc5-c9c6-fbf1-0ede210c2410", - "resource": { - "resourceType": "Practitioner", - "id": "029fabd5-fdc5-c9c6-fbf1-0ede210c2410", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner" - ] - }, - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:2a620155-9d11-439e-92b3-5d9815fe4de8" - } - ], - "name": [ - { - "family": "Seven", - "given": [ - "Henry" - ], - "prefix": [ - "Dr." - ] - } - ] + "referenceRange": [ + { + "low": { + "value": 12.0, + "unit": "g/dl" }, - "request": { - "method": "PUT", - "url": "Practitioner/029fabd5-fdc5-c9c6-fbf1-0ede210c2410" + "high": { + "value": 15.5, + "unit": "g/dl" } + } + ], + "interpretation": [ + { + "coding": [ + { + "code": "N", + "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation" + } + ] + } + ], + "subject": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" }, - { - "fullUrl": "urn:uuid:cca5f885-584d-d6e2-8a2b-5cea177bf04d", - "resource": { - "resourceType": "MedicationRequest", - "id": "cca5f885-584d-d6e2-8a2b-5cea177bf04d", - "identifier": [ - { - "system": "urn:oid:1.2.3.4.56789.1", - "value": "cb734647-fc99-424c-a864-7e3cda82e704" - } - ], - "intent": "order", - "status": "completed", - "subject": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" - }, - "medicationReference": { - "reference": "Medication/917b88e2-d186-dfbd-12c1-0e096f2f105d" - } - }, - "request": { - "method": "PUT", - "url": "MedicationRequest/cca5f885-584d-d6e2-8a2b-5cea177bf04d" + "performer": [ + { + "reference": "Practitioner/d369ddaf-25f4-4cf0-811d-f3b27e5c7d47" + } + ] + }, + "request": { + "method": "PUT", + "url": "Observation/628c88e9-b821-4ba9-6ff8-f872e5485b83" + } + }, + { + "fullUrl": "urn:uuid:d369ddaf-25f4-4cf0-811d-f3b27e5c7d47", + "resource": { + "resourceType": "Practitioner", + "id": "d369ddaf-25f4-4cf0-811d-f3b27e5c7d47", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:2a620155-9d11-439e-92b3-5d9816ff4de8" + } + ] + }, + "request": { + "method": "PUT", + "url": "Practitioner/d369ddaf-25f4-4cf0-811d-f3b27e5c7d47" + } + }, + { + "fullUrl": "urn:uuid:3795fd3b-410a-950e-0f29-c94f9aef7f86", + "resource": { + "resourceType": "Observation", + "id": "3795fd3b-410a-950e-0f29-c94f9aef7f86", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:107c2dc0-67a5-11db-bd13-0800200c9a66" + } + ], + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory" + } + ] + } + ], + "status": "final", + "code": { + "coding": [ + { + "code": "33765-9", + "display": "WBC", + "system": "http://loinc.org" } + ] + }, + "effectiveDateTime": "2000-03-23T14:30:00-05:00", + "valueQuantity": { + "value": 6.7, + "unit": "10+3/ul" }, - { - "fullUrl": "urn:uuid:b5dc3327-d0b0-cf0c-13a3-27bae542448a", - "resource": { - "resourceType": "DiagnosticReport", - "id": "b5dc3327-d0b0-cf0c-13a3-27bae542448a", - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:7d5a02b0-67a4-11db-bd13-0800200c9a66" - } - ], - "status": "final", - "code": { - "coding": [ - { - "code": "43789009", - "display": "CBC WO DIFFERENTIAL", - "system": "http://snomed.info/sct" - } - ] - }, - "subject": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" - }, - "result": [ - { - "reference": "Observation/628c88e9-b821-4ba9-6ff8-f872e5485b83" - }, - { - "reference": "Observation/3795fd3b-410a-950e-0f29-c94f9aef7f86" - }, - { - "reference": "Observation/4f7a2f4c-c628-f7e5-fb5a-4f8c1ba3d1a7" - } - ] + "referenceRange": [ + { + "low": { + "value": 4.3, + "unit": "10+3/ul" }, - "request": { - "method": "PUT", - "url": "DiagnosticReport/b5dc3327-d0b0-cf0c-13a3-27bae542448a" + "high": { + "value": 10.8, + "unit": "10+3/ul" } + } + ], + "interpretation": [ + { + "coding": [ + { + "code": "N", + "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation" + } + ] + } + ], + "subject": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" }, - { - "fullUrl": "urn:uuid:628c88e9-b821-4ba9-6ff8-f872e5485b83", - "resource": { - "resourceType": "Observation", - "id": "628c88e9-b821-4ba9-6ff8-f872e5485b83", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" - ] - }, - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:107c2dc0-67a5-11db-bd13-0800200c9a66" - } - ], - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/observation-category", - "code": "laboratory" - } - ] - } - ], - "status": "final", - "code": { - "coding": [ - { - "code": "30313-1", - "display": "HGB", - "system": "http://loinc.org" - } - ] - }, - "effectiveDateTime": "2000-03-23T14:30:00-05:00", - "valueQuantity": { - "value": 13.2, - "unit": "g/dl" - }, - "referenceRange": [ - { - "low": { - "value": 12.0, - "unit": "g/dl" - }, - "high": { - "value": 15.5, - "unit": "g/dl" - } - } - ], - "interpretation": [ - { - "coding": [ - { - "code": "N", - "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation" - } - ] - } - ], - "subject": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" - }, - "performer": [ - { - "reference": "Practitioner/d369ddaf-25f4-4cf0-811d-f3b27e5c7d47" - } - ] - }, - "request": { - "method": "PUT", - "url": "Observation/628c88e9-b821-4ba9-6ff8-f872e5485b83" + "performer": [ + { + "reference": "Practitioner/3aa24f02-894c-60d9-b26e-d22b084abe55" + } + ] + }, + "request": { + "method": "PUT", + "url": "Observation/3795fd3b-410a-950e-0f29-c94f9aef7f86" + } + }, + { + "fullUrl": "urn:uuid:3aa24f02-894c-60d9-b26e-d22b084abe55", + "resource": { + "resourceType": "Practitioner", + "id": "3aa24f02-894c-60d9-b26e-d22b084abe55", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:2a620154-9d11-439e-92b3-5d9815ff4de8" + } + ] + }, + "request": { + "method": "PUT", + "url": "Practitioner/3aa24f02-894c-60d9-b26e-d22b084abe55" + } + }, + { + "fullUrl": "urn:uuid:4f7a2f4c-c628-f7e5-fb5a-4f8c1ba3d1a7", + "resource": { + "resourceType": "Observation", + "id": "4f7a2f4c-c628-f7e5-fb5a-4f8c1ba3d1a7", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:107c2dc0-67a5-11db-bd13-0800200c9a66" + } + ], + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory" + } + ] + } + ], + "status": "final", + "code": { + "coding": [ + { + "code": "26515-7", + "display": "PLT", + "system": "http://loinc.org" } + ] + }, + "effectiveDateTime": "2000-03-23T14:30:00-05:00", + "valueQuantity": { + "value": 123, + "unit": "10+3/ul" }, - { - "fullUrl": "urn:uuid:d369ddaf-25f4-4cf0-811d-f3b27e5c7d47", - "resource": { - "resourceType": "Practitioner", - "id": "d369ddaf-25f4-4cf0-811d-f3b27e5c7d47", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner" - ] - }, - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:2a620155-9d11-439e-92b3-5d9816ff4de8" - } - ] + "referenceRange": [ + { + "low": { + "value": 150, + "unit": "10+3/ul" }, - "request": { - "method": "PUT", - "url": "Practitioner/d369ddaf-25f4-4cf0-811d-f3b27e5c7d47" + "high": { + "value": 350, + "unit": "10+3/ul" } + } + ], + "interpretation": [ + { + "coding": [ + { + "code": "L", + "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation" + } + ] + } + ], + "subject": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" }, - { - "fullUrl": "urn:uuid:3795fd3b-410a-950e-0f29-c94f9aef7f86", - "resource": { - "resourceType": "Observation", - "id": "3795fd3b-410a-950e-0f29-c94f9aef7f86", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" - ] - }, - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:107c2dc0-67a5-11db-bd13-0800200c9a66" - } - ], - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/observation-category", - "code": "laboratory" - } - ] - } - ], - "status": "final", - "code": { - "coding": [ - { - "code": "33765-9", - "display": "WBC", - "system": "http://loinc.org" - } - ] - }, - "effectiveDateTime": "2000-03-23T14:30:00-05:00", - "valueQuantity": { - "value": 6.7, - "unit": "10+3/ul" - }, - "referenceRange": [ - { - "low": { - "value": 4.3, - "unit": "10+3/ul" - }, - "high": { - "value": 10.8, - "unit": "10+3/ul" - } - } - ], - "interpretation": [ - { - "coding": [ - { - "code": "N", - "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation" - } - ] - } - ], - "subject": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" - }, - "performer": [ - { - "reference": "Practitioner/3aa24f02-894c-60d9-b26e-d22b084abe55" - } - ] - }, - "request": { - "method": "PUT", - "url": "Observation/3795fd3b-410a-950e-0f29-c94f9aef7f86" + "performer": [ + { + "reference": "Practitioner/88770970-88b9-01ef-5e74-0eba777f4fef" + } + ] + }, + "request": { + "method": "PUT", + "url": "Observation/4f7a2f4c-c628-f7e5-fb5a-4f8c1ba3d1a7" + } + }, + { + "fullUrl": "urn:uuid:88770970-88b9-01ef-5e74-0eba777f4fef", + "resource": { + "resourceType": "Practitioner", + "id": "88770970-88b9-01ef-5e74-0eba777f4fef", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:2a620155-9d11-439e-92b3-5d9815ff4de8" + } + ] + }, + "request": { + "method": "PUT", + "url": "Practitioner/88770970-88b9-01ef-5e74-0eba777f4fef" + } + }, + { + "fullUrl": "urn:uuid:347929cc-6c18-a140-7974-e9d22b6e9001", + "resource": { + "resourceType": "Observation", + "id": "347929cc-6c18-a140-7974-e9d22b6e9001", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" + ] + }, + "identifier": [ + { + "system": "urn:oid:2.16.840.1.113883.19", + "value": "123456789" + } + ], + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "social-history" + } + ] + } + ], + "status": "final", + "code": { + "coding": [ + { + "code": "72166-2", + "display": "Tobacco smoking status NHIS", + "system": "http://loinc.org" } + ] }, - { - "fullUrl": "urn:uuid:3aa24f02-894c-60d9-b26e-d22b084abe55", - "resource": { - "resourceType": "Practitioner", - "id": "3aa24f02-894c-60d9-b26e-d22b084abe55", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner" - ] - }, - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:2a620154-9d11-439e-92b3-5d9815ff4de8" - } - ] - }, - "request": { - "method": "PUT", - "url": "Practitioner/3aa24f02-894c-60d9-b26e-d22b084abe55" + "effectiveDateTime": "2012-09-10", + "valueCodeableConcept": { + "coding": [ + { + "code": "8517006", + "display": "Former smoker", + "system": "http://snomed.info/sct" } + ] }, - { - "fullUrl": "urn:uuid:4f7a2f4c-c628-f7e5-fb5a-4f8c1ba3d1a7", - "resource": { - "resourceType": "Observation", - "id": "4f7a2f4c-c628-f7e5-fb5a-4f8c1ba3d1a7", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" - ] - }, - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:107c2dc0-67a5-11db-bd13-0800200c9a66" - } - ], - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/observation-category", - "code": "laboratory" - } - ] - } - ], - "status": "final", - "code": { - "coding": [ - { - "code": "26515-7", - "display": "PLT", - "system": "http://loinc.org" - } - ] - }, - "effectiveDateTime": "2000-03-23T14:30:00-05:00", - "valueQuantity": { - "value": 123, - "unit": "10+3/ul" - }, - "referenceRange": [ - { - "low": { - "value": 150, - "unit": "10+3/ul" - }, - "high": { - "value": 350, - "unit": "10+3/ul" - } - } - ], - "interpretation": [ - { - "coding": [ - { - "code": "L", - "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation" - } - ] - } - ], - "subject": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" - }, - "performer": [ - { - "reference": "Practitioner/88770970-88b9-01ef-5e74-0eba777f4fef" - } - ] - }, - "request": { - "method": "PUT", - "url": "Observation/4f7a2f4c-c628-f7e5-fb5a-4f8c1ba3d1a7" + "subject": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + } + }, + "request": { + "method": "PUT", + "url": "Observation/347929cc-6c18-a140-7974-e9d22b6e9001" + } + }, + { + "fullUrl": "urn:uuid:ec28957d-3dea-cfaf-036f-53d1c32407ed", + "resource": { + "resourceType": "Observation", + "id": "ec28957d-3dea-cfaf-036f-53d1c32407ed", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:9b56c25d-9104-45ee-9fa4-e0f3afaa01c1" + } + ], + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "social-history" + } + ] + } + ], + "status": "final", + "code": { + "coding": [ + { + "code": "10159-2", + "display": "History of industrial exposure", + "system": "http://loinc.org" } + ] }, - { - "fullUrl": "urn:uuid:88770970-88b9-01ef-5e74-0eba777f4fef", - "resource": { - "resourceType": "Practitioner", - "id": "88770970-88b9-01ef-5e74-0eba777f4fef", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner" - ] - }, - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:2a620155-9d11-439e-92b3-5d9815ff4de8" - } - ] - }, - "request": { - "method": "PUT", - "url": "Practitioner/88770970-88b9-01ef-5e74-0eba777f4fef" + "effectivePeriod": { + "start": "2005-05-01", + "end": "2010-04-30" + }, + "valueString": "5 years of working with asbestos", + "subject": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + } + }, + "request": { + "method": "PUT", + "url": "Observation/ec28957d-3dea-cfaf-036f-53d1c32407ed" + } + }, + { + "fullUrl": "urn:uuid:1b3c27aa-d600-8c76-3098-b1c402b86b59", + "resource": { + "resourceType": "Observation", + "id": "1b3c27aa-d600-8c76-3098-b1c402b86b59", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:37f76c51-6411-4e1d-8a37-957fd49d2cef" + } + ], + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "social-history" + } + ] + } + ], + "status": "final", + "code": { + "coding": [ + { + "code": "74013-4", + "display": "Alcoholic drinks per day", + "system": "http://loinc.org" } + ] }, - { - "fullUrl": "urn:uuid:347929cc-6c18-a140-7974-e9d22b6e9001", - "resource": { - "resourceType": "Observation", - "id": "347929cc-6c18-a140-7974-e9d22b6e9001", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" - ] - }, - "identifier": [ - { - "system": "urn:oid:2.16.840.1.113883.19", - "value": "123456789" - } - ], - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/observation-category", - "code": "social-history" - } - ] - } - ], - "status": "final", - "code": { - "coding": [ - { - "code": "72166-2", - "display": "Tobacco smoking status NHIS", - "system": "http://loinc.org" - } - ] - }, - "effectiveDateTime": "2012-09-10", - "valueCodeableConcept": { - "coding": [ - { - "code": "8517006", - "display": "Former smoker", - "system": "http://snomed.info/sct" - } - ] - }, - "subject": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" - } - }, - "request": { - "method": "PUT", - "url": "Observation/347929cc-6c18-a140-7974-e9d22b6e9001" + "effectivePeriod": { + "start": "2005-05-01" + }, + "valueQuantity": { + "value": 0 + }, + "subject": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + } + }, + "request": { + "method": "PUT", + "url": "Observation/1b3c27aa-d600-8c76-3098-b1c402b86b59" + } + }, + { + "fullUrl": "urn:uuid:3f5add5f-3034-3456-7cc8-fa9c5a03a5a7", + "resource": { + "resourceType": "Observation", + "id": "3f5add5f-3034-3456-7cc8-fa9c5a03a5a7", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:c6f88321-67ad-11db-bd13-0800200c9a66" + } + ], + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "vital-signs" + } + ] + } + ], + "status": "final", + "code": { + "coding": [ + { + "code": "8302-2", + "display": "Height", + "system": "http://loinc.org" } + ] }, - { - "fullUrl": "urn:uuid:ec28957d-3dea-cfaf-036f-53d1c32407ed", - "resource": { - "resourceType": "Observation", - "id": "ec28957d-3dea-cfaf-036f-53d1c32407ed", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" - ] - }, - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:9b56c25d-9104-45ee-9fa4-e0f3afaa01c1" - } - ], - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/observation-category", - "code": "social-history" - } - ] - } - ], - "status": "final", - "code": { - "coding": [ - { - "code": "10159-2", - "display": "History of industrial exposure", - "system": "http://loinc.org" - } - ] - }, - "effectivePeriod": { - "start": "2005-05-01", - "end": "2010-04-30" - }, - "valueString": "5 years of working with asbestos", - "subject": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" - } - }, - "request": { - "method": "PUT", - "url": "Observation/ec28957d-3dea-cfaf-036f-53d1c32407ed" + "effectiveDateTime": "1999-11-14", + "valueQuantity": { + "value": 177, + "unit": "cm" + }, + "interpretation": [ + { + "coding": [ + { + "code": "N", + "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation" + } + ] + } + ], + "subject": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + } + }, + "request": { + "method": "PUT", + "url": "Observation/3f5add5f-3034-3456-7cc8-fa9c5a03a5a7" + } + }, + { + "fullUrl": "urn:uuid:c7e85da9-7f6b-5844-99c3-a4c662ac3af1", + "resource": { + "resourceType": "Observation", + "id": "c7e85da9-7f6b-5844-99c3-a4c662ac3af1", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:c6f88321-67ad-11db-bd13-0800200c9a66" + } + ], + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "vital-signs" + } + ] + } + ], + "status": "final", + "code": { + "coding": [ + { + "code": "3141-9", + "display": "Patient Body Weight - Measured", + "system": "http://loinc.org" } + ] }, - { - "fullUrl": "urn:uuid:1b3c27aa-d600-8c76-3098-b1c402b86b59", - "resource": { - "resourceType": "Observation", - "id": "1b3c27aa-d600-8c76-3098-b1c402b86b59", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" - ] - }, - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:37f76c51-6411-4e1d-8a37-957fd49d2cef" - } - ], - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/observation-category", - "code": "social-history" - } - ] - } - ], - "status": "final", - "code": { - "coding": [ - { - "code": "74013-4", - "display": "Alcoholic drinks per day", - "system": "http://loinc.org" - } - ] - }, - "effectivePeriod": { - "start": "2005-05-01" - }, - "valueQuantity": { - "value": 0 - }, - "subject": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" - } - }, - "request": { - "method": "PUT", - "url": "Observation/1b3c27aa-d600-8c76-3098-b1c402b86b59" + "effectiveDateTime": "1999-11-14", + "valueQuantity": { + "value": 86, + "unit": "kg" + }, + "interpretation": [ + { + "coding": [ + { + "code": "N", + "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation" + } + ] + } + ], + "subject": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + } + }, + "request": { + "method": "PUT", + "url": "Observation/c7e85da9-7f6b-5844-99c3-a4c662ac3af1" + } + }, + { + "fullUrl": "urn:uuid:85b1a1ce-87a0-0a0c-deab-29026ab2a852", + "resource": { + "resourceType": "Observation", + "id": "85b1a1ce-87a0-0a0c-deab-29026ab2a852", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:c6f88321-67ad-11db-bd13-0800200c9a66" + } + ], + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "vital-signs" + } + ] + } + ], + "status": "final", + "code": { + "coding": [ + { + "code": "8480-6", + "display": "Intravascular Systolic", + "system": "http://loinc.org" } + ] }, - { - "fullUrl": "urn:uuid:3f5add5f-3034-3456-7cc8-fa9c5a03a5a7", - "resource": { - "resourceType": "Observation", - "id": "3f5add5f-3034-3456-7cc8-fa9c5a03a5a7", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" - ] - }, - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:c6f88321-67ad-11db-bd13-0800200c9a66" - } - ], - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/observation-category", - "code": "vital-signs" - } - ] - } - ], - "status": "final", - "code": { - "coding": [ - { - "code": "8302-2", - "display": "Height", - "system": "http://loinc.org" - } - ] - }, - "effectiveDateTime": "1999-11-14", - "valueQuantity": { - "value": 177, - "unit": "cm" - }, - "interpretation": [ - { - "coding": [ - { - "code": "N", - "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation" - } - ] - } - ], - "subject": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" - } - }, - "request": { - "method": "PUT", - "url": "Observation/3f5add5f-3034-3456-7cc8-fa9c5a03a5a7" + "effectiveDateTime": "1999-11-14", + "valueQuantity": { + "value": 132, + "unit": "mm[Hg]" + }, + "interpretation": [ + { + "coding": [ + { + "code": "N", + "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation" + } + ] + } + ], + "subject": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + } + }, + "request": { + "method": "PUT", + "url": "Observation/85b1a1ce-87a0-0a0c-deab-29026ab2a852" + } + }, + { + "fullUrl": "urn:uuid:1fe8a2f7-2057-362e-5f3c-785d5cf39300", + "resource": { + "resourceType": "Observation", + "id": "1fe8a2f7-2057-362e-5f3c-785d5cf39300", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:c6f88321-67ad-11db-bd13-0800200c9a66" + } + ], + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "vital-signs" + } + ] + } + ], + "status": "final", + "code": { + "coding": [ + { + "code": "8302-2", + "display": "Height", + "system": "http://loinc.org" } + ] }, - { - "fullUrl": "urn:uuid:c7e85da9-7f6b-5844-99c3-a4c662ac3af1", - "resource": { - "resourceType": "Observation", - "id": "c7e85da9-7f6b-5844-99c3-a4c662ac3af1", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" - ] - }, - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:c6f88321-67ad-11db-bd13-0800200c9a66" - } - ], - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/observation-category", - "code": "vital-signs" - } - ] - } - ], - "status": "final", - "code": { - "coding": [ - { - "code": "3141-9", - "display": "Patient Body Weight - Measured", - "system": "http://loinc.org" - } - ] - }, - "effectiveDateTime": "1999-11-14", - "valueQuantity": { - "value": 86, - "unit": "kg" - }, - "interpretation": [ - { - "coding": [ - { - "code": "N", - "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation" - } - ] - } - ], - "subject": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" - } - }, - "request": { - "method": "PUT", - "url": "Observation/c7e85da9-7f6b-5844-99c3-a4c662ac3af1" + "effectiveDateTime": "2000-04-07", + "valueQuantity": { + "value": 177, + "unit": "cm" + }, + "interpretation": [ + { + "coding": [ + { + "code": "N", + "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation" + } + ] + } + ], + "subject": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + } + }, + "request": { + "method": "PUT", + "url": "Observation/1fe8a2f7-2057-362e-5f3c-785d5cf39300" + } + }, + { + "fullUrl": "urn:uuid:04cfe0e0-91a1-9c33-775c-13a0187bc884", + "resource": { + "resourceType": "Observation", + "id": "04cfe0e0-91a1-9c33-775c-13a0187bc884", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:c6f88321-67ad-11db-bd13-0800200c9a66" + } + ], + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "vital-signs" + } + ] + } + ], + "status": "final", + "code": { + "coding": [ + { + "code": "3141-9", + "display": "Patient Body Weight - Measured", + "system": "http://loinc.org" } + ] }, - { - "fullUrl": "urn:uuid:85b1a1ce-87a0-0a0c-deab-29026ab2a852", - "resource": { - "resourceType": "Observation", - "id": "85b1a1ce-87a0-0a0c-deab-29026ab2a852", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" - ] - }, - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:c6f88321-67ad-11db-bd13-0800200c9a66" - } - ], - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/observation-category", - "code": "vital-signs" - } - ] - } - ], - "status": "final", - "code": { - "coding": [ - { - "code": "8480-6", - "display": "Intravascular Systolic", - "system": "http://loinc.org" - } - ] - }, - "effectiveDateTime": "1999-11-14", - "valueQuantity": { - "value": 132, - "unit": "mm[Hg]" - }, - "interpretation": [ - { - "coding": [ - { - "code": "N", - "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation" - } - ] - } - ], - "subject": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" - } - }, - "request": { - "method": "PUT", - "url": "Observation/85b1a1ce-87a0-0a0c-deab-29026ab2a852" + "effectiveDateTime": "2000-04-07", + "valueQuantity": { + "value": 88, + "unit": "kg" + }, + "interpretation": [ + { + "coding": [ + { + "code": "N", + "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation" + } + ] + } + ], + "subject": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + } + }, + "request": { + "method": "PUT", + "url": "Observation/04cfe0e0-91a1-9c33-775c-13a0187bc884" + } + }, + { + "fullUrl": "urn:uuid:de0e62ec-48a6-67a4-2aad-d8e9825aaf64", + "resource": { + "resourceType": "Observation", + "id": "de0e62ec-48a6-67a4-2aad-d8e9825aaf64", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:c6f88321-67ad-11db-bd13-0800200c9a66" + } + ], + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "vital-signs" + } + ] + } + ], + "status": "final", + "code": { + "coding": [ + { + "code": "8480-6", + "display": "Intravascular Systolic", + "system": "http://loinc.org" } + ] }, - { - "fullUrl": "urn:uuid:1fe8a2f7-2057-362e-5f3c-785d5cf39300", - "resource": { - "resourceType": "Observation", - "id": "1fe8a2f7-2057-362e-5f3c-785d5cf39300", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" - ] - }, - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:c6f88321-67ad-11db-bd13-0800200c9a66" - } - ], - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/observation-category", - "code": "vital-signs" - } - ] - } - ], - "status": "final", - "code": { - "coding": [ - { - "code": "8302-2", - "display": "Height", - "system": "http://loinc.org" - } - ] - }, - "effectiveDateTime": "2000-04-07", - "valueQuantity": { - "value": 177, - "unit": "cm" - }, - "interpretation": [ - { - "coding": [ - { - "code": "N", - "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation" - } - ] - } - ], - "subject": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" - } - }, - "request": { - "method": "PUT", - "url": "Observation/1fe8a2f7-2057-362e-5f3c-785d5cf39300" + "effectiveDateTime": "2000-04-07", + "valueQuantity": { + "value": 145, + "unit": "mm[Hg]" + }, + "interpretation": [ + { + "coding": [ + { + "code": "N", + "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation" + } + ] + } + ], + "subject": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + } + }, + "request": { + "method": "PUT", + "url": "Observation/de0e62ec-48a6-67a4-2aad-d8e9825aaf64" + } + }, + { + "fullUrl": "urn:uuid:f4e5c26e-5cac-15c5-9f52-7ea5419ec3e5", + "resource": { + "resourceType": "Immunization", + "id": "f4e5c26e-5cac-15c5-9f52-7ea5419ec3e5", + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:e6f1ba43-c0ed-4b9b-9f12-f435d8ad8f92" + } + ], + "occurrenceDateTime": "1999-11", + "vaccineCode": { + "coding": [ + { + "code": "111", + "display": "influenza, live, intranasal", + "system": "urn:oid:2.16.840.1.113883.12.292" } + ] }, - { - "fullUrl": "urn:uuid:04cfe0e0-91a1-9c33-775c-13a0187bc884", - "resource": { - "resourceType": "Observation", - "id": "04cfe0e0-91a1-9c33-775c-13a0187bc884", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" - ] - }, - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:c6f88321-67ad-11db-bd13-0800200c9a66" - } - ], - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/observation-category", - "code": "vital-signs" - } - ] - } - ], - "status": "final", - "code": { - "coding": [ - { - "code": "3141-9", - "display": "Patient Body Weight - Measured", - "system": "http://loinc.org" - } - ] - }, - "effectiveDateTime": "2000-04-07", - "valueQuantity": { - "value": 88, - "unit": "kg" - }, - "interpretation": [ - { - "coding": [ - { - "code": "N", - "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation" - } - ] - } - ], - "subject": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" - } - }, - "request": { - "method": "PUT", - "url": "Observation/04cfe0e0-91a1-9c33-775c-13a0187bc884" + "status": "completed", + "route": { + "coding": [ + { + "code": "C28161", + "display": "Intramuscular injection", + "system": "urn:oid:2.16.840.1.113883.3.26.1.1" } + ] }, - { - "fullUrl": "urn:uuid:de0e62ec-48a6-67a4-2aad-d8e9825aaf64", - "resource": { - "resourceType": "Observation", - "id": "de0e62ec-48a6-67a4-2aad-d8e9825aaf64", - "meta": { - "profile": [ - "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults" - ] - }, - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:c6f88321-67ad-11db-bd13-0800200c9a66" - } - ], - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/observation-category", - "code": "vital-signs" - } - ] - } - ], - "status": "final", - "code": { - "coding": [ - { - "code": "8480-6", - "display": "Intravascular Systolic", - "system": "http://loinc.org" - } - ] - }, - "effectiveDateTime": "2000-04-07", - "valueQuantity": { - "value": 145, - "unit": "mm[Hg]" - }, - "interpretation": [ - { - "coding": [ - { - "code": "N", - "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation" - } - ] - } - ], - "subject": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" - } - }, - "request": { - "method": "PUT", - "url": "Observation/de0e62ec-48a6-67a4-2aad-d8e9825aaf64" + "patient": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + } + }, + "request": { + "method": "PUT", + "url": "Immunization/f4e5c26e-5cac-15c5-9f52-7ea5419ec3e5" + } + }, + { + "fullUrl": "urn:uuid:f700a092-ee1a-2c30-d48f-cf372d1fb888", + "resource": { + "resourceType": "Immunization", + "id": "f700a092-ee1a-2c30-d48f-cf372d1fb888", + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:e6f1ba43-c0ed-4b9b-9f12-f435d8ad8f92" + } + ], + "occurrenceDateTime": "1998-12-15", + "vaccineCode": { + "coding": [ + { + "code": "111", + "display": "influenza, live, intranasal", + "system": "urn:oid:2.16.840.1.113883.12.292" } + ] }, - { - "fullUrl": "urn:uuid:f4e5c26e-5cac-15c5-9f52-7ea5419ec3e5", - "resource": { - "resourceType": "Immunization", - "id": "f4e5c26e-5cac-15c5-9f52-7ea5419ec3e5", - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:e6f1ba43-c0ed-4b9b-9f12-f435d8ad8f92" - } - ], - "occurrenceDateTime": "1999-11", - "vaccineCode": { - "coding": [ - { - "code": "111", - "display": "influenza, live, intranasal", - "system": "urn:oid:2.16.840.1.113883.12.292" - } - ] - }, - "status": "completed", - "route": { - "coding": [ - { - "code": "C28161", - "display": "Intramuscular injection", - "system": "urn:oid:2.16.840.1.113883.3.26.1.1" - } - ] - }, - "patient": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" - } - }, - "request": { - "method": "PUT", - "url": "Immunization/f4e5c26e-5cac-15c5-9f52-7ea5419ec3e5" + "status": "completed", + "route": { + "coding": [ + { + "code": "C28161", + "display": "Intramuscular injection", + "system": "urn:oid:2.16.840.1.113883.3.26.1.1" } + ] }, - { - "fullUrl": "urn:uuid:f700a092-ee1a-2c30-d48f-cf372d1fb888", - "resource": { - "resourceType": "Immunization", - "id": "f700a092-ee1a-2c30-d48f-cf372d1fb888", - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:e6f1ba43-c0ed-4b9b-9f12-f435d8ad8f92" - } - ], - "occurrenceDateTime": "1998-12-15", - "vaccineCode": { - "coding": [ - { - "code": "111", - "display": "influenza, live, intranasal", - "system": "urn:oid:2.16.840.1.113883.12.292" - } - ] - }, - "status": "completed", - "route": { - "coding": [ - { - "code": "C28161", - "display": "Intramuscular injection", - "system": "urn:oid:2.16.840.1.113883.3.26.1.1" - } - ] - }, - "patient": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" - } - }, - "request": { - "method": "PUT", - "url": "Immunization/f700a092-ee1a-2c30-d48f-cf372d1fb888" + "patient": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + } + }, + "request": { + "method": "PUT", + "url": "Immunization/f700a092-ee1a-2c30-d48f-cf372d1fb888" + } + }, + { + "fullUrl": "urn:uuid:7503716e-e3da-74bd-c592-f128ea622eed", + "resource": { + "resourceType": "Immunization", + "id": "7503716e-e3da-74bd-c592-f128ea622eed", + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:e6f1ba43-c0ed-4b9b-9f12-f435d8ad8f92" + } + ], + "occurrenceDateTime": "1998-12-15", + "vaccineCode": { + "coding": [ + { + "code": "109", + "display": "Pneumococcal NOS", + "system": "urn:oid:2.16.840.1.113883.12.292" } + ] }, - { - "fullUrl": "urn:uuid:7503716e-e3da-74bd-c592-f128ea622eed", - "resource": { - "resourceType": "Immunization", - "id": "7503716e-e3da-74bd-c592-f128ea622eed", - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:e6f1ba43-c0ed-4b9b-9f12-f435d8ad8f92" - } - ], - "occurrenceDateTime": "1998-12-15", - "vaccineCode": { - "coding": [ - { - "code": "109", - "display": "Pneumococcal NOS", - "system": "urn:oid:2.16.840.1.113883.12.292" - } - ] - }, - "status": "completed", - "route": { - "coding": [ - { - "code": "C28161", - "display": "Intramuscular injection", - "system": "urn:oid:2.16.840.1.113883.3.26.1.1" - } - ] - }, - "patient": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" - } - }, - "request": { - "method": "PUT", - "url": "Immunization/7503716e-e3da-74bd-c592-f128ea622eed" + "status": "completed", + "route": { + "coding": [ + { + "code": "C28161", + "display": "Intramuscular injection", + "system": "urn:oid:2.16.840.1.113883.3.26.1.1" } + ] }, - { - "fullUrl": "urn:uuid:f2d67ba2-76a9-c4cc-0423-22dd9c5900b2", - "resource": { - "resourceType": "Immunization", - "id": "f2d67ba2-76a9-c4cc-0423-22dd9c5900b2", - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:e6f1ba43-c0ed-4b9b-9f12-f435d8ad8f92" - } - ], - "statusReason": { - "coding": [ - { - "code": "PATOBJ", - "display": "Patient Objection", - "system": "urn:oid:2.16.840.1.113883.5.8" - } - ] - }, - "occurrenceDateTime": "1998-12-15", - "vaccineCode": { - "coding": [ - { - "code": "09", - "display": "Tetanus and diphtheria toxoids - preservative free", - "system": "urn:oid:2.16.840.1.113883.12.292" - } - ] - }, - "status": "completed", - "route": { - "coding": [ - { - "code": "C28161", - "display": "Intramuscular injection", - "system": "urn:oid:2.16.840.1.113883.3.26.1.1" - } - ] - }, - "patient": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" - } - }, - "request": { - "method": "PUT", - "url": "Immunization/f2d67ba2-76a9-c4cc-0423-22dd9c5900b2" + "patient": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + } + }, + "request": { + "method": "PUT", + "url": "Immunization/7503716e-e3da-74bd-c592-f128ea622eed" + } + }, + { + "fullUrl": "urn:uuid:f2d67ba2-76a9-c4cc-0423-22dd9c5900b2", + "resource": { + "resourceType": "Immunization", + "id": "f2d67ba2-76a9-c4cc-0423-22dd9c5900b2", + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:e6f1ba43-c0ed-4b9b-9f12-f435d8ad8f92" + } + ], + "statusReason": { + "coding": [ + { + "code": "PATOBJ", + "display": "Patient Objection", + "system": "urn:oid:2.16.840.1.113883.5.8" } + ] }, - { - "fullUrl": "urn:uuid:a26689c1-bf4b-80ec-0931-d8f421e65ef1", - "resource": { - "resourceType": "Condition", - "id": "a26689c1-bf4b-80ec-0931-d8f421e65ef1", - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:ab1791b0-5c71-11db-b0de-0800200c9a66" - } - ], - "clinicalStatus": { - "coding": [ - { - "code": "81323004", - "display": "Alive and well", - "system": "http://snomed.info/sct" - } - ] - }, - "code": { - "coding": [ - { - "code": "233604007", - "display": "Pneumonia", - "system": "http://snomed.info/sct" - } - ] - }, - "onsetDateTime": "2008-01-03", - "subject": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" - } - }, - "request": { - "method": "PUT", - "url": "Condition/a26689c1-bf4b-80ec-0931-d8f421e65ef1" + "occurrenceDateTime": "1998-12-15", + "vaccineCode": { + "coding": [ + { + "code": "09", + "display": "Tetanus and diphtheria toxoids - preservative free", + "system": "urn:oid:2.16.840.1.113883.12.292" } + ] }, - { - "fullUrl": "urn:uuid:5c019092-be27-b962-e711-c21af8d4f512", - "resource": { - "resourceType": "Condition", - "id": "5c019092-be27-b962-e711-c21af8d4f512", - "identifier": [ - { - "system": "urn:ietf:rfc:3986", - "value": "urn:uuid:ab1791b0-5c71-11db-b0de-0800200c9a66" - } - ], - "clinicalStatus": { - "coding": [ - { - "code": "81323004", - "display": "Alive and well", - "system": "http://snomed.info/sct" - } - ] - }, - "code": { - "coding": [ - { - "code": "195967001", - "display": "Asthma", - "system": "http://snomed.info/sct" - } - ] - }, - "onsetDateTime": "2007-01-03", - "subject": { - "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" - } - }, - "request": { - "method": "PUT", - "url": "Condition/5c019092-be27-b962-e711-c21af8d4f512" + "status": "completed", + "route": { + "coding": [ + { + "code": "C28161", + "display": "Intramuscular injection", + "system": "urn:oid:2.16.840.1.113883.3.26.1.1" } + ] }, - { - "fullUrl": "urn:uuid:aa657309-acf9-c57d-157d-f126fe108fc9", - "resource": { - "resourceType": "DocumentReference", - "id": "aa657309-acf9-c57d-157d-f126fe108fc9", - "type": { - "coding": [ - { - "code": "34117-2", - "display": "History and Physical Note", - "system": "http://loinc.org" - } - ] - }, - "date": "2022-03-25T13:31:59.224Z", - "status": "current", - "content": [ - { - "attachment": { - "contentType": "text/plain", - "data": "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", - "hash": "ZmU2NzA5ZjNhYTcwODNhOGVmZmI0MjlkNTk4YTY5NWExMjFjZjZhMg==" - } - } - ] - }, - "request": { - "method": "PUT", - "url": "DocumentReference/aa657309-acf9-c57d-157d-f126fe108fc9" + "patient": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + } + }, + "request": { + "method": "PUT", + "url": "Immunization/f2d67ba2-76a9-c4cc-0423-22dd9c5900b2" + } + }, + { + "fullUrl": "urn:uuid:a26689c1-bf4b-80ec-0931-d8f421e65ef1", + "resource": { + "resourceType": "Condition", + "id": "a26689c1-bf4b-80ec-0931-d8f421e65ef1", + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:ab1791b0-5c71-11db-b0de-0800200c9a66" + } + ], + "clinicalStatus": { + "coding": [ + { + "code": "81323004", + "display": "Alive and well", + "system": "http://snomed.info/sct" } + ] + }, + "code": { + "coding": [ + { + "code": "233604007", + "display": "Pneumonia", + "system": "http://snomed.info/sct" + } + ] + }, + "onsetDateTime": "2008-01-03", + "subject": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" + } + }, + "request": { + "method": "PUT", + "url": "Condition/a26689c1-bf4b-80ec-0931-d8f421e65ef1" + } + }, + { + "fullUrl": "urn:uuid:5c019092-be27-b962-e711-c21af8d4f512", + "resource": { + "resourceType": "Condition", + "id": "5c019092-be27-b962-e711-c21af8d4f512", + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:ab1791b0-5c71-11db-b0de-0800200c9a66" + } + ], + "clinicalStatus": { + "coding": [ + { + "code": "81323004", + "display": "Alive and well", + "system": "http://snomed.info/sct" + } + ] + }, + "code": { + "coding": [ + { + "code": "195967001", + "display": "Asthma", + "system": "http://snomed.info/sct" + } + ] + }, + "onsetDateTime": "2007-01-03", + "subject": { + "reference": "Patient/5510eaa6-2ad2-b82b-248b-aba749e28fa1" } - ] + }, + "request": { + "method": "PUT", + "url": "Condition/5c019092-be27-b962-e711-c21af8d4f512" + } + }, + { + "fullUrl": "urn:uuid:aa657309-acf9-c57d-157d-f126fe108fc9", + "resource": { + "resourceType": "DocumentReference", + "id": "aa657309-acf9-c57d-157d-f126fe108fc9", + "type": { + "coding": [ + { + "code": "34117-2", + "display": "History and Physical Note", + "system": "http://loinc.org" + } + ] + }, + "date": "2022-04-22T05:37:10.971Z", + "status": "current", + "content": [ + { + "attachment": { + "contentType": "text/plain", + "data": "H4sIAAAAAAAACu19eXfayLbv3/kW9XyHl9xjQAMC5OP4LIxxzG0PNOB093vrrV5CKoxuBOJI4MTn07+9S1NJaMTYcTrQnQQ01LR37frtoXad/uPbwiKP1HFNe/nxSKwLR4Quddswlw8fj+4nl7XOEXHX2tLQLHtJPx49UffoH2en+FrNXT9Z1J1TuibrpxXcXNNv68Y31zoic4fOPh71Lrp1/Akv/K9ajUzMtUVPiP+5Mt217TwRKJsM50+uqWsWuTQtutQW/lO9GpTw50j603/2T3j2z+DZOrac/Pu15q57c235QI0LbQ0vSoLYrIliTZSIJJ9IyomgkpqgCAJ5/xs1jglcv7Uf2WMfyL9DLf+144dcmK5uaeaCOidkMjdd4mqLlUXJDDpBdHu51sylSxy6cqhL4dfafKTE0NYaoRZdwBWXrO3oPtFSx6ROoHC/UIOuTB1e0+CnvgaSwZDpc83R9DV1/rdL5lSz1nNWR510l09QuEsXU0tb6hTr0uACvLICettLAi3WbXOpmwa2jlVkE9OyNu7agaEkmksWGhQSbzJcXdmua04tekzW0DLdMpeMeK4OtHNMG956Ikt7TaaUrCxtw571u8HKMpfwYmK84Ce+Yi7XdGlQIz4yXqthALEFx9B+G9+znahu+oi3WCVRwfDNoK75sPTKg+ZsXPgK1QN1/mezZENIvpowZNgRxm6kFxR5a6+pSwZYEvZcYw9/2sBo1XfnmVrt7DSo4cLWN1gyAU5euiffXPPj0Xy9Xp00Gl+/fq1/leu289CQBEFs/H5zPdbndKHVgKVgOur0yHvr49HGWZ7MrXYNnj15lP3LJ7qhZd1yjbUev4dXjs7e4STduWMEx+6KagZ1di3jHQzOu1Ok9aJnGziFDBAq9+OjBlxGCTMwiGPb649HUl1s1TtNoS7WRVHudGT4Av0D8UOXniQb3vUu/ry6EODTFFgBKIHux+QTXVIHqOs1lUwo0BeZndW99n/lVSTUJfgfbtTFWI1M7gitmqCG1eG4IBedeLy/hKdJVMUx6yCb62uUjMCIlkUMczaDdsFMh3kAUpggh841T8QSe0aMgGuAu6cUn8ApwljS6wTWDPw9s50FEzDI2uFL7orqJggPmFL/3JiOP6d36b2c13vT4G9OJmoH1pHMQtW6UlfxA0OKb7Nxwb/GTy40Ku2dFo5+9MgtrBkfj67vBrc97/LHI7kpiu2adAQj6kK3nrxHUlcdpJHHZEiHs569WGyW5voJmQTlKT58ZbsrE6SkexJK6f8EKfP3sJTThvf2u1MKFATR8kgnsDaQR83aUDZAkqCKLVEVlBrwpMeUSCcmfk3Nggo5tr89KhgBpS4prAyQ7g8b7YFyL9NlzZ82Ll0PYrRwKxDDo6WPDm43iykwpt8dj1AO1W3HmGjOA12fvXt36ovokY3j8C7JBqraUVWxVNUSFv/O4+VL7QslgwuQ3cjsV9dtKNOT73eDizpj3a2qRAAAglCTZFnIrq/psRtfzdjWgRJkTPWNgwzgd9qrGicSrLQbfGB8G6tdMwx8ChlsCJI0KPNqiLP0aOWYCw0YZm4vQG7PHHvB0ZakkRbar/plAw3XDmCsLlRBXffaXNIzUVbapMuaduEAo502tp9hr+rQibNzqgEN1/bytMF++4XCTD+7G+Gr+I1dhIUdWBwZ6Uxtd1rt0wZ3xSvQ3izXztPZ/RgK87+H3QXxit29h7kDy+wYy3X9/g7Gd0QWW62aSHrea/AvLM4nBDBnHe/UxWAwGzia7NsaUIcOb/tMBz9P3nfE1gep3aq1VJA14ZhHdMwec2Qdf4TuXVo07gEze91DUOpVdu3R16vsmtV1TR80i6ukD/N5zQROVj1NJaDuu9MHIODybOBqU2pZ2mnD+524F7+MVfe8unsaLBqxLka1DzVn/SuwKwh84JTUdshRO2bawrSezv4bcL572vB/sTsN7L33VTMWAF4YQIT2wGIKiygneC6LpZaYkMiXgGosJn6x/KnprOdxuQnYXRH8mfruFIiKYhiZa+NyNd8kir3RHMekRgkpur2O3CTrCCp3qGU+mPbG7c4AtJoMEnJtEAVRTjSjN3dgtExtSd4v7WWtp63ntmXqxwB2l7VgMf6w3QQk5CiojXDVlRhgod0KG6zp/LogqjgDE03sWnSzLiq2VZfkznYzR1C+vw7213NAtSg0gTcvekELKLv8ybE3K64hkthp1ZREQ2AZxrV1pcELCO6vocNL+8VaBoumYwBlfPYPQcfHo0+j4eg20bhPDqCAleaARChBAlHMICmsjOyG34i0lWOfa8ezVo+89SNjBSmzhuSsIntdR/iVpPpawjHIkKnLQQNDWRjJ55FmreYxCZ0nTmMCFb6nVBNd5KQi8KIevMR991gorDaHYlkkK0WzXKLx49yI2nbaSDScw6oMYutMpPkvpuLYkBgLuMDd6Y+HiQna/4bWAtTv3ZX9Bd4snKUtIUWF8BvRnYLAXT/d8FN15dggrAET6E/XYG9goxNIjKS0sO0SS09LLGzAMKqTawcFFREu0QEoJgE/O5twmWpkDjNQJ0I12KFH0D6cO+cBZO6/ImIgmi5E6XVRVuWgSsbQ+YoTDyOCycim3G9ASm5WEkVRauwPKO9B+RyDpQg0MJGQz6A9Q5dJFybhJlumeRNkaDtrGCSDnx/psyM2N1RRkrfnRjYojpBsI2OsQ4J4OtNpI65SnWobAAxYBOimCVAkS6okNUHLZdZNNlCnmuuZu7rBa9s6mPfJ04p89MCviFCh9/m9eDkGFLSFMCwbujmHZd1bke/g7eCKpz+DqHP9akNSp1Na8plLh7XYW79IvvqTQuti7SeV0lmETtFY0hg74GvsRNBXn1687OfWBm9FuaJL5ymuAPjLyRjNnhlYHRqVLDy6FPAHXAm+oWUWVAcQLIzdgic9bSLgpDymSWGzpiwpUjmylp3AB5pm0TSg1GkjRspTk5kCNSbzM8jKUe6XIcxysZ1vpTmQ9LVJyhExTlBQSUGA+U+CPwReRXkFFvDRmOkTnj04uE7gcuRYQU+S7wxiXhDvO9i3WKnAD+7cXEUOEn+pCq1e3AIxHo4TQn88vLsf94uWC/wCLKW05G0oNAxaM+Jbw1SoCRrDP6NoBVvd2mdHfyhyZeklqHFfUomUZ/fAZTlednglnUQ6+NBsH7+Hc67HXcTW+kTgbqQCsd1W750hWRoSYytWuKZxkCy8lofNKqzY3w2elaBGNC05QkKJ3A+fBfCFEZh2Vj7SPg28mvzFzKf3KVuyqkDLPYXCjG2Oq8Q2DK+mFYRVb/U5qz2nFhpQEZOgJwS0lVTEqwqS1BZlMOtHeBfpAUY6h1cNmeOjxEqnVsHCB/TyaktdGjMwPejAHD+ruhIxR4IPwEnjwA8TbMaeh9zDPoPbi6NQgkBcxYkXnzT4fP3nxEdFlv019GWqiiqg1up1cm4+zDmvrSgKnqMVasfyfNmCjsJU3HV798tREh3dTK7KGY1LCJs2udC+umRk1L+716/AUwei9QNjIElMogduBDN4CY1c5rezG8eFfvo/eC4DH816ru2A5FJq5i9GrMaxFlvaLzcWeGEsjJi4m3HMdnl9yXjqFOw2YFLnWKHbmxyRBZgCvZ+jX+88zsi1rsX0aJjWTaXWandUf8FrsEq8pTTWIBZMsFhB171f4HmBOL7FCqfQ8qG/ZGRjqv32Oii3ITghT+NLGoRyzT8pDrXecFJrBoEZqiptucn6yDdehBUijRttCZYA7JhfcyykwiMpN4HTwcHWVE596LSxVTYUzRmmT72guh6A10tNZ0ZZn93iZFQSSrIvM6GC9AJgoYuqgVakUwvnG0fVIKxoxxgt4oVpndvGE/uxc0ksXihsGUNiYICG2AiHGlh6qHjmFeA9smsbwKhInQeTQjxg18AYFQp6IoRnoJ4Il+Dm2t217FC/jTqIXUQ28bkiCvAK28E4d7Bcg34KSqYOF/wXPAUaigGHtEvslR+4GQ3Du2qxV1LC2BaPvXqXWHuanXZLwTionQOqgkK9+Kbu9XV/9GnQH8MgX3zuj8Z9MuqDpBvc3eIluDkZh7FQft++eSOI3zWIBSVTJsUwigjGxljP0XUu/Efg/oSnYMoYwS/4Gbq32L2z8WbqBUFCPfP4rYAFtu8g+MCYnpQ7zM8fuw4/IpdaI9ac0/XUZ/C0xhn++PRvBz3S/30ygpE5JkP8Obi+HtxCYUb8+fAHiwYDoq4h2OnjkeN3RDw6u4UQWgpLnX+be71sYa7fdygMPVosuhciA9llWqrgwRKbg75i7g4/StsDgYseQJLKPZaOzn6DoPJ/gSDcR5+lqM+liutW7WcXtGLHXFbup3x0dgU1ufvoJJR1Y1osynmxx87Cd47Z4RfOXn9WN6JpDVADHfERJLoYDT6HwQzQ2xxQ1P98GzxJSCUx2KxjcF+uHAzFtC+lMVgAxIYDKAMaxclffjWXW1SmqizU2lO2k8CY1tQZBS9bBxQhQdBVrRXY2FibOVnbuwviT3PdvqmxIUCKHo5SMoDIazDXIzcZ+uTNTO6JjABUoc0CqSJKxyGUdzcspRR68jhhG52FTBEz3UYMMr4//2+uIfbUpc6jh/84Vrk7H2ewSkBZzScrX0DAQxxxq7NWu5CzeJZpaoYOamI5lvHmcEi97ngMSyasnsWM04yVscUHCFcsCjpM7LFU4hRTP4uscIO9xKnVvYsA2jdBlQZ9WUjCe4higHB2FzVl3IXiw7VAELIodcPZPBRjFDVl7oxv7276FwTECt8724HYOYBZkwh8eDfC4Img8/8WLbVc95mqlVbEaYO9x11It0H0xjexBnFPeVFgEZ/fdG/v+WdZfM8TUwSS1oWbm26sn3FeksVmU0qGvOcDkuIx76RF1327BTtuvCHZY15l2HNGnt3ClsSGqhEbqxgBE0PO0zCm3G99cmXXzeUYVjBz6cfFQwyOH30TY78dJFp1KaWWkFK+pAyAcaGorCrYYkIpsR7uKtviSkNVDuKhSSVZmSMti+VljsTMlZltudNWobxywi8eMMsUg6TUiugbE+ZJjuaXiKKV+m1we6c8twO0C/S9dIaPYb93SWd2/3PSmR0UdhcVVoantwQnojwuprACs0c63N6YPZsp5baoSk3AfMmo+i3t8blr9jOZN/WV7BfA0qsHSov30A+nwUAgIShhi59Tg2nlajDe3YMG83NqMEnq/4QaTOBz+HE1GKnVFrbkB7Mjfn9FJT66OQPMbh0UlYOiUsBBr6KotPalqCgtQYTVoLmDohLY8w+qyk+lquyR3bPZstWWW0x9TlVUDurJQT15PfWkk6ueeHcP6snPqZ4kqf8TqifBbtEfVz0RRUxgE3eveO7/76+exEc3Z4DZrYN6clBPCjjoVdSTzr7UE6nZbral3fQTFodzUE5+KuVEfjU/iry9XieDtf4Sasppg4uQ5QKX2c+ygcuI1sbjm/7tpMzTpEykbrXY2iIv436yEypip9mpJU2dUeeTQbfhjezQWst01wT/ws2xH49YiC2wauQegpZAfKy+cTCJEfk0IOBHogbmlNwsvyztr0tCYdQs++Hp72T+tLL9QcBdwXNtxcKZ7aWByYiAczM+LK/rdLPGNLGW+YVaT/HXVrb1tJprzkLTn+qnDdamWAO7+gbECvqR546NiaC0JV2YWryUfxPT3/0XtBkePgbnGJYC/YQ465lmWhCX7kVhP9rWBlQ2y3bdUkVewVg6XzQrpQ0yC/iGlnZ7ffb1l78Rd7Py08WmlnYHkcRO2DPD1B6WtouR4yz5LdBCm9qP9Jj4NMLBYyGX8cJOG0jlYP6FLLCX6de7GvQvSe/uZnjdHdxOSAODu8d3t+TybkQ+D8aD7zUtRXm/E7DZkmR1awImO0v+RhIjkpiYyRcaicezpyuoK9qDo63mZxea8wUIbdsW2+sUXq9K4DKUSftcdm8G13+Qq8F4cjf6Y9dSXoDkSpEoRq4O2ZqQS7bji8z9/KzB9osQrHDPhhsveOVOEJV2LbbOZvFWnAniA1iG5JcakwTvDapTzaXGhy2672mrxIUnY8z49gZ2q4u5VtbkbunS9b42P9w82TpLXGaRwXKmOR4B3usYqMSSF1Po+IftOHSlXSHgHvo0BRTmbhfTFF42lN32NrkD5eLhH7wBoXd9P570RzuHhDSLuL6Q76NW5nE+tiy0r+H+YY0as5oii0qtqctaTaN0VhOp2pFFVddbU4WrvwwyPnU30/+BGRhRw8+YMfaup+Uqebc1Jy9x52w8XyibOunpFb2BuKGY27DchlseN68dbel6YDfcqthsg4qaaME5A0ksc/QsozEeMi+F6mMWwbhVZmsIixOw3lRPwHoTpV/169hKwgpWLy7gP+DAvp+G2Z/bmEU+4lwXYgZ1a4Op/KcUVX6WdX/h5RuPqYxYlt9dKOEkEInpue0SD8Ub2WoHT/EVwLKZ5MRGnBXPsp5MrGa7xjpWlwFFG/xCGvhTP0hJflcU3BtNeaMp0emsLdQUvaN6JvWpYNAsk3o8TKytyJJcbqnMgmFJJ4xhMmPAcw3wadxQZDmSJBU63drBcMStd2a43sUblxNb2+vej58fR/uuKnPFxmVrNUksJmzFTrf9pC0qCSZrddTOTKOMybRiJvOm3D7Cx/dguwFfi6CqLAa2Ml9cAGb6Ue2JVflJTppvE+gEcWZF/uG3LzcVsJWwRbgyFXiEuy/+GP4aJklRwIeJSZLAQfxCBrit5WdPC9K7F1uPclBpBRaIBIgynUEss84EyPSvuEopMWCVJ45aLVnZURr5ChNZUMsyobHeYTJxb/RB2LxpYdMUXlvYoPvYVyRfyNb/qX/bH3WvyXjSndyPv4NhMchkmrQDSaJQk/cmNuLdTNiO4jfL2I5YahNmcAaV6gEEPGERCHgw2tL2Ld9Q/xpzQtXJcwyKpYjoW73I3SUZdscTMri+vgVfxXegJtoMpaINNfuxHsODKe6bjKFIUJzdAuvAoAdkr2AzHFMa6nmgbg/9s/EGlrVESn8PyzHf4VF/DO6pKuRP++zEEWKd0QwPdKqLqtzG7wpcw+vNPRNeEFvN7VPFMschQfvsB8twADvb0E/CS76C08heAsDCDJzMVwRNwsMgH8DkMrMddtjjlrMPXkr7GNTVHXMaGGu2mYlvxhUlYbLU4IC5/gi+GRqEUjXwmEkjdGmQJwpD6eAt5hYEGQXOPyu1FVMHnZDea6y0Oiyn7LQvAlVgh0O35CP1TpGkpCP8Aw/ZdG3rEfs3g8pIHT6pNbAb7K/cHl5rU6KtowE9IZ+sjQ6uOiKK0jE5v78lYgvcdBA4swZr3BKu18VjPCNTXzvg4USslfbx+l4nV3WyerIgOgvE+NpEuzTxj/urky4Y+Fzmd8XzHtc20GUNtf3HcdSc1LK5pyX1P+rkt/MeaUPowTGewYnp+cDiilnFiKS0jgVBqJN7CFvTrCdwDoQNw0vpxesbC7N7nZBbmzwAndbzOhncjryODycTAvOoiGuQgszIOmPncDKHbIuhGmDlGXC2/gUug9MamBXXNR3gqus9FhEui6y5lQP/0yjFnChBVMtqzczEJ6QH1lxwkej2ClxGc/srniAClADDJrZEt9ippCVY6nsI4MHNzf3t4P90WfatV5W5+atw7tmYkQHZT4k28s6iNCKvXEKVHLBsxF5yYbe6X0+UW+oe1UBuETb5hiVkfYw22eKdT+fEihtD90KIvx8v4GdN171UXAkfIB6Z/NIJ0cIfKX1FFRQchaDhLP+lkUfTAd300WvsMRncbHv48OhmUVXV7Tu9QKeq4EnMa5pUtWkXVMemdV6+aRgKMVzSzcLWbR3dUBhV40LbYHUwge3fSDMRek3oWlvCyKG6YpirObrLIJJmbX+zTcNNbyG0rr19dUTZqvGyDl43yCzY5dxscbva+Lx7AV62hAN4SR/Yk8wOO9MsNzLEVrS1KVJl/29MPmJiAPOR7QSI5GOamS0ystHWTJxqTbmmC9SoNacq7q4QpdqsKStGRzM6M5XbyhWPskyJsAxndkQZ7o1yzuO4tWwrhXNkP1PVIG2y1xob1F+u7J7UEePHbKUNv1yXUGdIkf+3bExhivWQKxyIanBBkKOK/f62N/iA5zq72gZkQ2KNGACXaYuNC7BJcwA/oFcxZjg8NQBO/rpB/AekCizKoZFnoXObJXFquZtFxNB4bQHzaobH0cLCOXRsYxN3qSe2PFRlwuYOBt84G95Qwz94DENBgqz/GbyY6M8NNBTEhBUXLyFR4zspUrsCGAR4NkmTVGmekq748+9xh0hsH0VGMdm7LVICC9gBkbHGmUGpxxA3iTGAJnLQUnPxZNm0BpYbgbipMLHp4xSwrXfCMWuyiCmJ+Qvcm/nU4Ym3fZqc/wxLwe0fJ3E9JjWPXWzgDh2wM3+sYqLC9BLjbfJnAG/NTE6ZZ1q4C7LAYGjg7g7/QrNVON9g2qAMwmTLDAyHB9gn5xMPgNui0GyyKPTKZm0e4RIKY+zF7PPNSgTOZ60IPq4dQuitiZgW+L2GIcLEfVqs1vbCZVaL9dwBO1fuBwwDaO6KV1vOyM5FrufZyFkgSBoQqJw66AUARWXm+osgCum1EEVHlCD09IApCjBFdT48gIq/PqgArkigCrl5wBUHXHHAFQdc8TZxBbcR9IAr3oCt4i+GK2R5J2NFCfvudzFcbKWEjTX09m78isCidQAWB2BxABZvEFjwprOf1V5xwBVvywfyF8MVorAbsMj3yIJZnsV2sehgCLKagTW2Ks6oVkOJDzaiEkrZAin76vSLwBhwdh/8Lge/y8HvUuCjG43vuD1Mr7HvSZG3RH1MvLOYFFB70vcuSVoL1gxFqamGKNaaskprqjSVa4oBLgZlNmsaRmc7aWVcufKDfe/YtuQwWRbc6E7u0GOZtgu+q69vbb6dI6q5ZfJsxVtT0qFWMXNUaZz6UiGTXuT9GwuYLAyXrFhccYHxvCctATcz7Cs+Mgpyjwab3I/7iQBJjhIvfGBsBMNSQiAh8tTzpacGQjprUjpIkl0H/cevK+XmpWlZMf/9CwdZQsfB7f6neHQG8PgRrpoWEeqCSm4+NSCA4b47AVw+1yzMrFr0cW1r4w1hiYNFsyoJCjkmElltZjOX/Dq4IMPRLfkanvmaLIudtgVwt9Txpey6Z5NaAsJ7L8lyS4DYhzYJs+Wl5J/5RJcACHXCThY28T/M62VZGA3+NiMOz3Zb0cTinbxBmAk3d/F458+DyR+purNuTA1Zngm1lm7QwtzMhbpzyLKNikyU8eF5i7yAgf8s84A41NAys32LkqDEogyyTlHNqH0YxC2YfkQijMd4RXVzZtLAAEPsFWaXtEFwdrl2wkXTDpOrtAJ1e17cmK3oSrkjIUftHF3ZG2RGUI764+Fg1GUryfvB7VX3mvHihwLzgRhaDx4w1mejcZtxTzHVZvIFNbI3WA2YgtzjC+3bBV/FcmNZl5b2iAN6f/sLN6TLzcIb6a1nOAYw6NKGCvIfw7C2WK1naZl/7OU9NJmnRFNSm81kwCMbNQhM2xOBvmNAqiRXyhdfCL0pjYPdCoYXpS23JLFcvu9kkvaCJTgQbDnGFe5GgfTkH6xiPAn6t2vbn5MIPc9ysr8gVM4qdwnP416eVwtCBeGLdsBgTz1egiliPiypkTzBFtmZlxO3gxjLaoaRJ25whlkUFrTcZxwabuXMGjIzZ4KqoDWq8KmLsprI7s/GsmczNRRkpx/4iwa4K9tdmWsIaUwOeKkml+h4o6hXEAaaOuanjS3ylDl8oMLRA1XFXvxECj4vjijJgDG2LJ14zAN5pHNTt8pllebLL30qQszBLTWFZrIZXerYIBH2JwwYp/ilbk/U9DOgM0+ATj3/+Y3ZnsQyhztz6dymbbnZarZrM11Va02pqde0TqtZa1NZN7SORNvoL+AKbCqtlpKbOgcg/P5S51iAXVjGRJPtc352Bh2eN/KB904HrYRqY2q0A2iWFedWRTtZATP2L8P8okyFXK2s2HQdD6//yNycUJkRyx7Vk7NW7ZQjKVvVKqa5r27lrhJZXAGrB9V8F02kVvCv/jOhQ7SVuBiN44Dq4Phl4PFzAHIxRP6+IDkPJlcAynlQ+U2D5W24XAyYy0HmiqC5FGwuAM5sgd66tI2cc7Czx+v8lAC+7uA0KcaysDImWB8RZ3xIML0SXXfhOnXda4iiOwODtEg+g31Xw0RgQP8NGCa3H4uVomObh7azBqYAOyP7magGqHZ2N8KS8Fvs5sqGixYKkDMVEzjDoEVX4vVg4g/wq2CCqeB7jGKJDmbh41SEjOOzWc/tWAFrFOD5KN6voZt8t7yUok1jS0oVKQcllYyofUPwTKdOCP4Kynw6M7+dXTiYB8T7Hn/gARaa5dkVXTpPpw3vR/yBGcuXeIZH5ICN3f8VeyJlqmW2MrqVHGC4k7zy7Nx/FfZGehTY++bIitsjE8qUoAqYK6e9ywbJqLotPqtkr7G0KcU0wsQFrcR057ufSBTb5ZgLM5lDFtHjq0PS5+lGRYf08PzALVwXQDh4iWbvmg1FjwhuVBlDAFrtDpg3YvXpxbrW80+SzNVoDhD1AFEPEPXHgKjloVA6iC0HWNOw7s8NYn8SoFfGhr+zFX9HO37ZsS8F1wut+VX1lSqYB2rGM9+8gJAI7gxHPd4cjFkX0anOJ2D28+dintaoBMxwEUZ8kLhHlz0dAyMVYXLxwUF7Ohg722yqtATMn73LGay/+TEaMaPp1sCyOReO5/6jCkulPB5e/TFm2Xv7v3dvBrcsLuF7ZK8WXyfZsaQqTaW2ZeQKBuFycHsxuP20leY4ZZCeeXjlVb9/OznBuKwgi+zaZulhMagChiD9BEcKrp4TMhqNWH7sxcaB/1OfnFzdjbq/k//UFqu/k+t76NIJ6VnwOktBCqEvxJnbS31uEpjFLKSIph9DeX4BkWa3LFUqJuL26HNM4Av0CpM1H2MJDxs8OWb5AD+mIN6OCSx8EOj4FZTAzAi8zdJwU+s87/Z+wQqDUQGtFIKBvN1QIKpXmoV5g7EVQV+i1vwdxyXjg5JX0x0olBp0oaXW3f99MurfDCaDPgzYhb15mD95T5OpiZwMb1tPx+GxlzBRMeWsPteWD9RLWp7x0dynxYKuITAP6ndhYMCJ9LCXszB3jfwdQjgNxrX2uqP+G4oeLpQD4SYlMgSUhplLe5pDUzKpcmIqvliInXa7VVP25hCcYO5kPA0M0xMvk7KDG+YXDg3G8QDcgEHzbM/gdsxu8MRWGPAzwnW5nMNp8a4sOFB64bMMS7mwR7/e7RpqiuFopbZxxnkyIET6WWYkNQQVQkwNcarpNbFtyLWmqCq1jqo1IRhVEqd6R1CnTe7UDJ6tpY4gyfv0c3PJpMfrjRE794ZrwpZFiO1Z5c7hy/B2n2Ku98gtGbBKUehmivs5ZU/wGWfNjbNA0ri7I0vIxTENnKjK4Av4kkz9vBtTaIqezhRtud1CTfi5p7Jnssb3ZITUo9sTDAAmalSwY+ecohGfZ4M+8P6ukkHYAxv0wzZmrF4VBQQf8h1b9xS5qbLciTFqRkOEOp0+p/qX2mZF3oNRSKcGWIw+5HJGCcY6I3GXbiGrIEH9RhVSOGxmzkQfju52J3HRBqTIPp9O3mHYwJC8VWir87RVtDc4z5f068tN8pC81TXgnaHx6O78un9DrgfjyT6hMcSlIaMAPwDIWRDMIoqI4D31Dw9w/MMDPpD3n6UPAYc8C08r1bbPiU1FqDX3BiH4gUziYu9WydMEVt6QRXH75bTsiPm2y8KNZOHeqhNAOMjUpEZG/vkrW3vD0vTFvAqko7Ouu54vYqUH27zyys5QBAtAcL7fOrbPimfCHpgBQHdmUIRxXSijOAFVERoVy8soW4ne0VqzWadGjea01py1aa0j6XKNqh2qdKZNxaDcGa88r/buArNOnrUvaZrzu5snzQo3Tp1lRO518rdJJe9nbpMqimB4ZuwuT/3UkyyfYbgtlWYkJL42FduqOMUTMdviLidiSrXOHtUd7Ki5XFdMCB2Kk1hA5i4ZnUuHBXf2HBZc2cAdhQ4nQg5//MN+cw/5/dnP9q0SOBOgHd/L5vWkWODsSPzqGZHKBGJBqdFKJeuyMe20ahSWJcDmLbXWaSkgsVTaEaaaKNBpMoAvhqzw/N79HcQZG9UdgrW2AJVP+13jtPIkTQf7XtqTVlY36WIaaOYRQGv6czm7cvKPPNvDniEavrY9Vypz/M8Kywp2ryfv/wiwrDLtf15cJr0iLtvLdi0w+qitdmlTTlwmMn3zAMoOoCwLlL0pePVuJ4DIg7KpRFuyqoLbayp0ak1db9XUtizXZk1BatLpbAqi6gDKfm5Q9oJW4l7/4n7Uf0PJ14r2twYow7Oop5w/mxYv0WwrorpHq3Ds5PBgDLfNw/6Nlw6aCAajxImy+09qhrWDIZr5WSCeCJPjY6yTvXgqlZps6/DTvYdWRM61pDdtT0m8SkZWsPnCedLSvGvcTpj/ynCwGa3OtE1lqdbuiODomIH+ruq6VNN0Q2lOhZnRUYzv5WDj9IfUbbspGNdjn9jW/JRXi3yvxZnCsp12ENM299ggJw9UQMC7IUZOdq854ee1CJN9QQAVr1ENI39t9EAyI8l42Oce4xO5SZSq8H9No7JYa7akTk1TQYhBp0R9OlU6rU4cqAc1DFOzb8RZQRZUSWoJgrIDQtf5mU5ciM+0uAAJtljltiS6H08CElzdNTnPXnZmJPdl7GNXRsGejJwdGWX3Y+TvxkjuxQh3A2xcjPQeRmZWRamxP4Ig/Ah5icq2f3u3zV422xTttcnbalN6p03BRpst2r5CtqWLfri4RpKR3K2wGggNji9cL5iOSebsd6HvI0jngRuB2baODN9HxLDtpqRRKgs1SdQVMBVRsTadwYKaYSoK8zJd0EdTpxkCVhWasNAIrR3ka7SgJsRqRr2n+GiqwI9soVMVPGUAF9pgFktLCjqNJR9CYZxaZqUUTrlxL4kAqOoafVWQVsJ0HFMs0iNf44CMKxBmcJNtTs5LaZER9NoGTV/ZbS1OQd1ZyK3GBYq+Oj7TQMUph85EYEjelL1yTKhw/cRn1xwVW+djLmFfsdfXQ7+w5ChqlgUha18gesndWGs+tWaKkbMiclxrzgNdjyE4husC+t4wjrGzZ9vF1LARhLJNJtR6NPmu7BFOHSVZvyqEapML7atLRka9DHQ6RxqcgzUmCzvddPOxE0SVtzovi53eA/D4EACQrSF5PoD6mdI5XnORrrn4YXwRe7QygIh7VlD+j0HUw+pKLiiaAcGocG3rebFFMf94S8B9eUUTWlLU7RntUVCHoFu/BUG9iRl+D8IExopF5/ZYOOrPN/XyuDMzZ+bwmmeUnWbQXhJbVtn7EQXbJjFJGOoYMmMVz3xF6FTiALjtRC3A6O16PDGMj5H2goIqWacSAOmHsFK9MRy0N/BwgA4H6HCADgnhd4AO0QJ+gA7Z0OFVncPguLy/nrwhz3CRCadqccX7ihB99f2dTSN/Z1Oqfxn8KUqzJu3Nv+yPfcKj7F8tcCeX9OdCOyzMbQjtPDq77p7f+ae7DG4v70Y3QYKQdL9sfmG9OV1g0hccNXbEJybBt+gjRUhdtsQsd7MHTcDhfPXpnLy/IaJcEzvkoWFYfyeXRJRqYov9+lDO+yzXpX21CXr+23mPvAe9sgZs1iGi8De5sSnZEoDL+2qIfHQ2vJ6Q96IMloimQhb0n42y4yHJ5P31hx0Jf40qM7ncLP10n0j8OzzclVyjARCP2nkinxHiVmGELvZl/GmYdlKYLNaFKkWNWVF3aUWJnUpFffo0SckVAWWQrvWlQjnDuR0fDHa106rUmIkN+io5Ny0z7ew3scoIWdPNwlymjHSViRLjinMLtFDSQ/W+QkN+m4PFNOUtdrNdabKAGxpNB+uUcRY77UoDfUUXwMWYByuF+HKlVkFR9oNlT9MGu1OFZrHB7l/3exOIbemOLgZ3n0bdG/K+/8unD7tJ9TN4dbtxYxPPbnbmTxCoG+Yv0vQNkMvPIvTCqVI8oyNIFc7ccd6dTPqjzJy2bCUfMelIovefv0+0xL76yM9oKJogQUh6q81yHWBIugHLV8bJfHz0mgyOpe3DZXqw2vx2Ry4Gl5f9Uf92MuheP9d4UnHzQhzcPW/jQECdPW/nLDZexcxXQluXDJ3RSCmkURIDyghGkpGCn86fgQqTWSfieC/DWBVApH3vGuC2CQgChN6KTYi+FWoCWO1yExJyG/kQbwVb+RClxamA5mzwLUDTgFhc20qkREzEQkWeudiOi5grrlGYMn+/GfJbeMZ0IkN+pbzwIaVHKGX5UrhJk7znM0w2UE7ZMJckIB74AkTkn4ntGxGlupBF1eRuJVFB92HWs6cN9lhshLI7h76o1CHJiLreElcHARYTYBAfCqybzAR63vs+Akx6iwIM1LSAe3317q8pwpqZRxF9DxFWVSCxnaKZVNoSSaCs5z5+kErfEVZJLUVUalsnv11Pvo9Ukt+iVAKzzU5S6foHk0rKDy2VREWoIJXkgqdfVyihw9tXm18ojfeo/3nQ/w13VI3/GE/6N+OXy+Etgu0fj9gG/R080oB64F8F/QH4p7PfdN2iADYmzJqRsO8nOrtl6U/cz7b5g59Ie3C01fxsCDRES7BBl14qNsxXR+Zgike7qz0jM7DBO5jseqFZmunSOhnarolyiKVNTPt8pdoXzErNbLkuTJs1+wWFTTFl8LxO7paU0JXp4mDB5QVY2pZaHbNtBw2gmqHpc+rWU2uINQGcf9QGx9ccLGymi8cvzc2Ve0ygDb4zASxMBpTE/GN+v18r3fT4rgcmFuLv/du1lHSO9YLXx7ZugiH3yidZgsufmZa61MbKqM6gMQH/bGen3mpffN1W2y2ppEssNjfig5CYGHEavPDGygQ5+hbFFNkpuyypCyZhtv9h+2Y/WOtZymr3hXdjul6c0sSGOB7dJu7C/gIBa/7O9G1b7iWL6WGP0bTU1wBCFEHEFPbwXRUkqS3KPjZ5vrcK2oo6XjC8IDzMpbFBxyEmuP8GkQDentZEqxTyRDWHyaCvtsO6h1ZoorlTCiW52f2oAdMLQlMW99J2BEZdS7fntgUBZoZjLr+4EHXtEENLSSMu5AxvjbyF5OJb9vJxjHmKLLMV7bLt4kPj9rfFoi2JrdYusih9HpFbkD/PSvQT246q4okBuVsOgoQHithme4pibeTnsFPpIOxysah75KqK4dklWCR/zcrIgbe1bvGqhjpVWrqkGDUgS7PWVCioGjNw2FBhJmszTRNELhI0njcIsJ6i7jEKJF8y7hLH6i8PLxzGepaRXIhJu+w0Vkw2C8VprJITZDw5KrEo8NpSEeP/vNwvt2ftlq6ItVYTFW0qGrWOJrdrqtKeGU3VkHQ6y+B+COAGk85zcmwEpZJkRpb0RfaI7DYD5DczA9I5HIY1x9bDrRUFbPxSetDnwQQg+Hjw6fYNBQcWJeGoWlylpOOdttjaY2ZMboAT6g9352V1H6JZYD2DiDKQ0OsjlkeGNAgy6QnZ1nFu7UciNo+JqKrq9t3uyjEt0j5GHULYj/4Tts+iM2jeFcVmJmvOBO+PJgYQiu020RelwuKyy5HKlpOnZSR681vl3kDEX6dFvjw8szNNKKZTopgKffGCv4a4vywlQVFeYxQYWVlqQL8Wi6vn9qwFhTWVBvSuTGGvE7LUu74H095oT3BBapWDC59xaxtB07hbEAkVZaJpzaAyiXlvjEqBS+1mW+qg72ZfgjFq/DGYJnGaHIN9MfhXg1g409E3C3/RPyb2N5BYQJhjcn4zOGYGxPNxl0C0HLX2osChxBNFkdvtu7eYgor0LzLvJThgDIOYfqhXepYMnwnEckyQWB5lQdqnWsQIXjGXKpP5L+W62+aCAn9dO4wi0BcvE0Dw6iEwfx12BQ+siGEwe2LXwC1zDssI8dZ2sPjdUA1XRKM6GzffDBt3WgEXf+EPCj5w8Vvg4k6zAyv23rh4APhGe9RcfWNpDsGnUSOvzr3K2xHCchiKulj836uH//ddWTjXwX6Alz8pvGQxQU0hnjPhsF6/SXj5wvGqMS44wMsDvPzh4GVVNu6EUbkHePnmlKQ3Ci9bb0cIN8N9Lm8dXuY4iliOMMinirIEJcxZ7P5po2eZkF5Jsy5swEV46f8DQh0UksROAQA=", + "hash": "ZmU2NzA5ZjNhYTcwODNhOGVmZmI0MjlkNTk4YTY5NWExMjFjZjZhMg==" + } + } + ] + }, + "request": { + "method": "PUT", + "url": "DocumentReference/aa657309-acf9-c57d-157d-f126fe108fc9" + } + } + ] } \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/ReferralNote/Referral_Note-expected.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/ReferralNote/Referral_Note-expected.json index 5cbd72530..eb452a920 100644 --- a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/ReferralNote/Referral_Note-expected.json +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/ReferralNote/Referral_Note-expected.json @@ -649,15 +649,6 @@ "value": "urn:uuid:ab1791b0-5c71-11db-b0de-0800200c9a66" } ], - "clinicalStatus": { - "coding": [ - { - "code": "55561003", - "display": "Active", - "system": "http://snomed.info/sct" - } - ] - }, "code": { "coding": [ { @@ -821,28 +812,6 @@ "url": "AllergyIntolerance/ce48f4cd-50ca-9c45-359e-8d9998cf4d84" } }, - { - "fullUrl": "urn:uuid:023fffb6-ab9c-78cf-4631-e45bbd101825", - "resource": { - "resourceType": "AllergyIntolerance", - "id": "023fffb6-ab9c-78cf-4631-e45bbd101825", - "clinicalStatus": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical", - "code": "active" - } - ] - }, - "patient": { - "reference": "Patient/aca97b95-3c1c-ce73-ac65-f520242997a9" - } - }, - "request": { - "method": "PUT", - "url": "AllergyIntolerance/023fffb6-ab9c-78cf-4631-e45bbd101825" - } - }, { "fullUrl": "urn:uuid:f32ccb2b-f725-a1af-71b0-f1510491f0ed", "resource": { @@ -895,17 +864,7 @@ } ] }, - "manifestation": [ - { - "coding": [ - { - "code": "255604002", - "display": "Mild", - "system": "http://snomed.info/sct" - } - ] - } - ] + "severity": "mild" } ], "patient": { @@ -1162,7 +1121,6 @@ } ] }, - "contributedToDeath": true, "onsetAge": { "value": 40, "system": "http://unitsofmeasure.org", @@ -3068,7 +3026,7 @@ } ] }, - "date": "2022-03-25T08:35:31.818Z", + "date": "2022-04-22T05:37:15.998Z", "status": "current", "content": [ { diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/TransferSummary/Transfer_Summary-expected.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/TransferSummary/Transfer_Summary-expected.json index e52830839..d87ec7c91 100644 --- a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/TransferSummary/Transfer_Summary-expected.json +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Ccda/TransferSummary/Transfer_Summary-expected.json @@ -777,15 +777,6 @@ "value": "urn:uuid:ab1791b0-5c71-11db-b0de-0800200c9a66" } ], - "clinicalStatus": { - "coding": [ - { - "code": "55561003", - "display": "Active", - "system": "http://snomed.info/sct" - } - ] - }, "code": { "coding": [ { @@ -949,28 +940,6 @@ "url": "AllergyIntolerance/4f4be2e3-e836-5ee4-bee6-93b4c1eb8982" } }, - { - "fullUrl": "urn:uuid:023fffb6-ab9c-78cf-4631-e45bbd101825", - "resource": { - "resourceType": "AllergyIntolerance", - "id": "023fffb6-ab9c-78cf-4631-e45bbd101825", - "clinicalStatus": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical", - "code": "active" - } - ] - }, - "patient": { - "reference": "Patient/aca97b95-3c1c-ce73-ac65-f520242997a9" - } - }, - "request": { - "method": "PUT", - "url": "AllergyIntolerance/023fffb6-ab9c-78cf-4631-e45bbd101825" - } - }, { "fullUrl": "urn:uuid:e02561c2-64a6-ea50-a40e-883e572545d9", "resource": { @@ -1023,17 +992,7 @@ } ] }, - "manifestation": [ - { - "coding": [ - { - "code": "255604002", - "display": "Mild", - "system": "http://snomed.info/sct" - } - ] - } - ] + "severity": "mild" } ], "patient": { @@ -2456,7 +2415,6 @@ } ] }, - "contributedToDeath": true, "onsetAge": { "value": 40, "system": "http://unitsofmeasure.org", @@ -3830,7 +3788,7 @@ } ] }, - "date": "2022-03-25T08:35:30.036Z", + "date": "2022-04-22T05:37:20.239Z", "status": "current", "content": [ { diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/AllergyIntolerance.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/AllergyIntolerance.json new file mode 100644 index 000000000..fcad3b507 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/AllergyIntolerance.json @@ -0,0 +1,113 @@ +{ + "resourceType": "AllergyIntolerance", + "id": "example", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example

identifier: 49476534

clinicalStatus: active

verificationStatus: confirmed

type: allergy

category: food

criticality: high

code: Cashew nuts (Details : {SNOMED CT code '227493005' = 'Cashew nuts', given as 'Cashew nuts'})

patient: Patient/example

onset: 01/01/2004

assertedDate: 09/10/2014 2:58:00 PM

recorder: Practitioner/example

asserter: Patient/example

lastOccurrence: 01/06/2012

note: The criticality is high becasue of the observed anaphylactic reaction when challenged with cashew extract.

reaction

substance: cashew nut allergenic extract Injectable Product (Details : {RxNorm code '1160593' = '1160593', given as 'cashew nut allergenic extract Injectable Product'})

manifestation: Anaphylactic reaction (Details : {SNOMED CT code '39579001' = 'Anaphylaxis', given as 'Anaphylactic reaction'})

description: Challenge Protocol. Severe reaction to subcutaneous cashew extract. Epinephrine administered

onset: 12/06/2012

severity: severe

exposureRoute: Subcutaneous route (Details : {SNOMED CT code '34206005' = 'Subcutaneous route', given as 'Subcutaneous route'})

reaction

manifestation: Urticaria (Details : {SNOMED CT code '64305001' = 'Urticaria', given as 'Urticaria'})

onset: 01/01/2004

severity: moderate

note: The patient reports that the onset of urticaria was within 15 minutes of eating cashews.

" + }, + "identifier": [ + { + "system": "http://acme.com/ids/patients/risks", + "value": "49476534" + } + ], + "clinicalStatus": { + "coding": { + "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical", + "code": "active" + } + }, + "verificationStatus": { + "coding": { + "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-verification", + "code": "confirmed" + } + }, + "type": "allergy", + "category": [ + "food" + ], + "criticality": "high", + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "227493005", + "display": "Cashew nuts" + } + ] + }, + "patient": { + "reference": "Patient/example" + }, + "onsetDateTime": "2004", + "recorder": { + "reference": "Practitioner/example" + }, + "asserter": { + "reference": "Patient/example" + }, + "lastOccurrence": "2012-06", + "note": [ + { + "text": "The criticality is high becasue of the observed anaphylactic reaction when challenged with cashew extract." + } + ], + "reaction": [ + { + "substance": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1160593", + "display": "cashew nut allergenic extract Injectable Product" + } + ] + }, + "manifestation": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39579001", + "display": "Anaphylactic reaction" + } + ] + } + ], + "description": "Challenge Protocol. Severe reaction to subcutaneous cashew extract. Epinephrine administered", + "onset": "2012-06-12", + "severity": "severe", + "exposureRoute": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + } + }, + { + "manifestation": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "64305001", + "display": "Urticaria" + } + ] + } + ], + "onset": "2004", + "severity": "moderate", + "note": [ + { + "text": "The patient reports that the onset of urticaria was within 15 minutes of eating cashews." + } + ] + } + ], + "recordedDate": "2014-10-09T11:58:00+08:00" +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Appointment.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Appointment.json new file mode 100644 index 000000000..55e92fad0 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Appointment.json @@ -0,0 +1,103 @@ +{ + "resourceType": "Appointment", + "id": "example", + "text": { + "status": "generated", + "div": "
Brian MRI results discussion
" + }, + "status": "booked", + "serviceCategory": [ + { + "coding": [ + { + "system": "http://example.org/service-category", + "code": "gp", + "display": "General Practice" + } + ] + } + ], + "serviceType": [ + { + "coding": [ + { + "code": "52", + "display": "General Discussion" + } + ] + } + ], + "specialty": [ + { + "coding": [ + { + "system": "http://example.org/specialty", + "code": "gp", + "display": "General Practice" + } + ] + } + ], + "appointmentType": { + "coding": [ + { + "system": "http://example.org/appointment-type", + "code": "follow", + "display": "Followup" + } + ] + }, + "priority": 5, + "description": "Discussion on the results of your recent MRI", + "start": "2013-12-10T09:00:00Z", + "end": "2013-12-10T11:00:00Z", + "created": "2013-10-10", + "comment": "Further expand on the results of the MRI and determine the next actions that may be appropriate.", + "participant": [ + { + "actor": { + "reference": "Patient/example", + "display": "Peter James Chalmers" + }, + "required": "required", + "status": "accepted" + }, + { + "type": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/ParticipationType", + "code": "ATND" + } + ] + } + ], + "actor": { + "reference": "Practitioner/example", + "display": "Dr Adam Careful" + }, + "required": "required", + "status": "accepted" + }, + { + "actor": { + "reference": "Location/1", + "display": "South Wing, second floor" + }, + "required": "required", + "status": "accepted" + } + ], + "reasonReference": [ + { + "reference": "Condition/example", + "display": "Severe burn of left ear" + } + ], + "basedOn": [ + { + "reference": "ReferralRequest/example" + } + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/AppointmentResponse.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/AppointmentResponse.json new file mode 100644 index 000000000..9a2b87207 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/AppointmentResponse.json @@ -0,0 +1,36 @@ +{ + "resourceType": "AppointmentResponse", + "id": "exampleresp", + "text": { + "status": "generated", + "div": "
Accept Brian MRI results discussion
" + }, + "identifier": [ + { + "system": "http://example.org/sampleappointmentresponse-identifier", + "value": "response123" + } + ], + "appointment": { + "reference": "Appointment/examplereq", + "display": "Brian MRI results discussion" + }, + "start": "2013-12-25T13:15:00Z", + "end": "2013-12-25T13:30:00Z", + "participantType": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/ParticipationType", + "code": "ATND" + } + ] + } + ], + "actor": { + "reference": "Practitioner/example", + "display": "Dr Adam Careful" + }, + "participantStatus": "tentative", + "comment": "can't we try for this time, can't do mornings" +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/AuditEvent.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/AuditEvent.json new file mode 100644 index 000000000..4df428b6d --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/AuditEvent.json @@ -0,0 +1,99 @@ +{ + "resourceType": "AuditEvent", + "id": "example-pixQuery", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example-pixQuery

type: Query (Details: DICOM code 110112 = 'Query', stated as 'Query')

subtype: PIX Query (Details: urn:oid:1.3.6.1.4.1.19376.1.2 code ITI-9 = 'ITI-9', stated as 'PIX Query')

action: E

recorded: 26/08/2015 11:42:24 PM

outcome: 0

agent

role: Source Role ID (Details : {DICOM code '110153' = 'Source Role ID', given as 'Source Role ID'})

userId: 2.16.840.1.113883.4.2|2.16.840.1.113883.4.2

altId: 6580

requestor: false

Networks

-AddressType
*Workstation1.ehr.familyclinic.com1

agent

userId: 95

altId: 601847123

name: Grahame Grieve

requestor: true

Sources

-Identifier
*hl7connect.healthintersections.com.au

entity

identifier: e3cdfc81a0d24bd^^^&2.16.840.1.113883.4.2&ISO

type: Person (Details: http://hl7.org/fhir/object-type code 1 = '1', stated as 'Person')

role: Patient (Details: http://hl7.org/fhir/object-role code 1 = 'Patient', stated as 'Patient')

entity

type: System Object (Details: http://hl7.org/fhir/object-type code 2 = '2', stated as 'System Object')

role: Query (Details: http://hl7.org/fhir/object-role code 24 = 'Query', stated as 'Query')

query: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPFBSUEFfSU4yMDEzMDlVVjAyIElUU1ZlcnNpb249IlhNTF8xLjAiIHhtbG5zPSJ1cm46aGw3LW9yZzp2MyI+CiAgPGlkIGV4dGVuc2lvbj0iMzU0MjMiIHJvb3Q9IjEuMi44NDAuMTE0MzUwLjEuMTMuMC4xLjcuMS4xIi8+CiAgPGNyZWF0aW9uVGltZSB2YWx1ZT0iMjAxNDA1MDgxNjQ5MjUiLz4KICA8aW50ZXJhY3Rpb25JZCBleHRlbnNpb249IlBSUEFfSU4yMDEzMDVVVjAyIiByb290PSIyLjE2Ljg0MC4xLjExMzg4My4xLjYiLz4KICA8cHJvY2Vzc2luZ0NvZGUgY29kZT0iVCIvPgogIDxwcm9jZXNzaW5nTW9kZUNvZGUgY29kZT0iVCIvPgogIDxhY2NlcHRBY2tDb2RlIGNvZGU9IkFMIi8+CiAgPHJlY2VpdmVyIHR5cGVDb2RlPSJSQ1YiPgogICAgPGRldmljZSBjbGFzc0NvZGU9IkRFViIgZGV0ZXJtaW5lckNvZGU9IklOU1RBTkNFIj4KICAgICAgPGlkIHJvb3Q9IkVIUl9NSVNZUyIvPgogICAgICA8YXNBZ2VudCBjbGFzc0NvZGU9IkFHTlQiPgogICAgICAgIDxyZXByZXNlbnRlZE9yZ2FuaXphdGlvbiBjbGFzc0NvZGU9Ik9SRyIgZGV0ZXJtaW5lckNvZGU9IklOU1RBTkNFIj4KICAgICAgICAgIDxpZCByb290PSJNSVNZUyIvPgogICAgICAgIDwvcmVwcmVzZW50ZWRPcmdhbml6YXRpb24+CiAgICAgIDwvYXNBZ2VudD4KICAgIDwvZGV2aWNlPgogIDwvcmVjZWl2ZXI+CiAgPHNlbmRlciB0eXBlQ29kZT0iU05EIj4KICAgIDxkZXZpY2UgY2xhc3NDb2RlPSJERVYiIGRldGVybWluZXJDb2RlPSJJTlNUQU5DRSI+CiAgICAgIDxpZCByb290PSIyLjE2Ljg0MC4xLjExMzg4My40LjIiLz4KICAgICAgPGFzQWdlbnQgY2xhc3NDb2RlPSJBR05UIj4KICAgICAgICA8cmVwcmVzZW50ZWRPcmdhbml6YXRpb24gY2xhc3NDb2RlPSJPUkciIGRldGVybWluZXJDb2RlPSJJTlNUQU5DRSI+CiAgICAgICAgICA8aWQgcm9vdD0iMi4xNi44NDAuMS4xMTM4ODMuNC4yIi8+CiAgICAgICAgPC9yZXByZXNlbnRlZE9yZ2FuaXphdGlvbj4KICAgICAgPC9hc0FnZW50PgogICAgPC9kZXZpY2U+CiAgPC9zZW5kZXI+CiAgPGNvbnRyb2xBY3RQcm9jZXNzIGNsYXNzQ29kZT0iQ0FDVCIgbW9vZENvZGU9IkVWTiI+CiAgICA8Y29kZSBjb2RlPSJQUlBBX1RFMjAxMzA5VVYwMiIgY29kZVN5c3RlbT0iMi4xNi44NDAuMS4xMTM4ODMuMS42Ii8+CiAgICA8cXVlcnlCeVBhcmFtZXRlcj4KICAgICAgPHF1ZXJ5SWQgZXh0ZW5zaW9uPSIxODQwOTk3MDg0IiByb290PSIxLjIuODQwLjExNDM1MC4xLjEzLjI4LjEuMTguNS45OTkiLz4KICAgICAgPHN0YXR1c0NvZGUgY29kZT0ibmV3Ii8+CiAgICAgIDxyZXNwb25zZVByaW9yaXR5Q29kZSBjb2RlPSJJIi8+CiAgICAgIDxwYXJhbWV0ZXJMaXN0PgogICAgICAgIDxwYXRpZW50SWRlbnRpZmllcj4KICAgICAgICAgIDx2YWx1ZSBleHRlbnNpb249IlN1cnlhQnJhbmQiIHJvb3Q9IjIuMTYuODQwLjEuMTEzODgzLjQuMiIvPgogICAgICAgICAgPHNlbWFudGljc1RleHQ+UGF0aWVudC5JZDwvc2VtYW50aWNzVGV4dD4KICAgICAgICA8L3BhdGllbnRJZGVudGlmaWVyPgogICAgICA8L3BhcmFtZXRlckxpc3Q+CiAgICA8L3F1ZXJ5QnlQYXJhbWV0ZXI+CiAgPC9jb250cm9sQWN0UHJvY2Vzcz4KPC9QUlBBX0lOMjAxMzA5VVYwMj4K

Details

-TypeValue
*MSH-10MS4yLjg0MC4xMTQzNTAuMS4xMy4wLjEuNy4xLjE=
" + }, + "type": { + "system": "http://dicom.nema.org/resources/ontology/DCM", + "code": "110112", + "display": "Query" + }, + "subtype": [ + { + "system": "urn:oid:1.3.6.1.4.1.19376.1.2", + "code": "ITI-9", + "display": "PIX Query" + } + ], + "action": "E", + "recorded": "2015-08-26T23:42:24Z", + "outcome": "0", + "agent": [ + { + "role": [ + { + "coding": [ + { + "system": "http://dicom.nema.org/resources/ontology/DCM", + "code": "110153", + "display": "Source Role ID" + } + ] + } + ], + "altId": "6580", + "requestor": false, + "network": { + "address": "Workstation1.ehr.familyclinic.com", + "type": "1" + }, + "who": { + "identifier": { + "value": "2.16.840.1.113883.4.2|2.16.840.1.113883.4.2" + } + } + }, + { + "altId": "601847123", + "name": "Grahame Grieve", + "requestor": true, + "who": { + "identifier": { + "value": "95" + } + } + } + ], + "source": { + "observer": { + "identifier": { + "value": "hl7connect.healthintersections.com.au" + } + } + }, + "entity": [ + { + "type": { + "system": "http://hl7.org/fhir/object-type", + "code": "1", + "display": "Person" + }, + "role": { + "system": "http://hl7.org/fhir/object-role", + "code": "1", + "display": "Patient" + } + }, + { + "type": { + "system": "http://hl7.org/fhir/object-type", + "code": "2", + "display": "System Object" + }, + "role": { + "system": "http://hl7.org/fhir/object-role", + "code": "24", + "display": "Query" + }, + "query": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPFBSUEFfSU4yMDEzMDlVVjAyIElUU1ZlcnNpb249IlhNTF8xLjAiIHhtbG5zPSJ1cm46aGw3LW9yZzp2MyI+CiAgPGlkIGV4dGVuc2lvbj0iMzU0MjMiIHJvb3Q9IjEuMi44NDAuMTE0MzUwLjEuMTMuMC4xLjcuMS4xIi8+CiAgPGNyZWF0aW9uVGltZSB2YWx1ZT0iMjAxNDA1MDgxNjQ5MjUiLz4KICA8aW50ZXJhY3Rpb25JZCBleHRlbnNpb249IlBSUEFfSU4yMDEzMDVVVjAyIiByb290PSIyLjE2Ljg0MC4xLjExMzg4My4xLjYiLz4KICA8cHJvY2Vzc2luZ0NvZGUgY29kZT0iVCIvPgogIDxwcm9jZXNzaW5nTW9kZUNvZGUgY29kZT0iVCIvPgogIDxhY2NlcHRBY2tDb2RlIGNvZGU9IkFMIi8+CiAgPHJlY2VpdmVyIHR5cGVDb2RlPSJSQ1YiPgogICAgPGRldmljZSBjbGFzc0NvZGU9IkRFViIgZGV0ZXJtaW5lckNvZGU9IklOU1RBTkNFIj4KICAgICAgPGlkIHJvb3Q9IkVIUl9NSVNZUyIvPgogICAgICA8YXNBZ2VudCBjbGFzc0NvZGU9IkFHTlQiPgogICAgICAgIDxyZXByZXNlbnRlZE9yZ2FuaXphdGlvbiBjbGFzc0NvZGU9Ik9SRyIgZGV0ZXJtaW5lckNvZGU9IklOU1RBTkNFIj4KICAgICAgICAgIDxpZCByb290PSJNSVNZUyIvPgogICAgICAgIDwvcmVwcmVzZW50ZWRPcmdhbml6YXRpb24+CiAgICAgIDwvYXNBZ2VudD4KICAgIDwvZGV2aWNlPgogIDwvcmVjZWl2ZXI+CiAgPHNlbmRlciB0eXBlQ29kZT0iU05EIj4KICAgIDxkZXZpY2UgY2xhc3NDb2RlPSJERVYiIGRldGVybWluZXJDb2RlPSJJTlNUQU5DRSI+CiAgICAgIDxpZCByb290PSIyLjE2Ljg0MC4xLjExMzg4My40LjIiLz4KICAgICAgPGFzQWdlbnQgY2xhc3NDb2RlPSJBR05UIj4KICAgICAgICA8cmVwcmVzZW50ZWRPcmdhbml6YXRpb24gY2xhc3NDb2RlPSJPUkciIGRldGVybWluZXJDb2RlPSJJTlNUQU5DRSI+CiAgICAgICAgICA8aWQgcm9vdD0iMi4xNi44NDAuMS4xMTM4ODMuNC4yIi8+CiAgICAgICAgPC9yZXByZXNlbnRlZE9yZ2FuaXphdGlvbj4KICAgICAgPC9hc0FnZW50PgogICAgPC9kZXZpY2U+CiAgPC9zZW5kZXI+CiAgPGNvbnRyb2xBY3RQcm9jZXNzIGNsYXNzQ29kZT0iQ0FDVCIgbW9vZENvZGU9IkVWTiI+CiAgICA8Y29kZSBjb2RlPSJQUlBBX1RFMjAxMzA5VVYwMiIgY29kZVN5c3RlbT0iMi4xNi44NDAuMS4xMTM4ODMuMS42Ii8+CiAgICA8cXVlcnlCeVBhcmFtZXRlcj4KICAgICAgPHF1ZXJ5SWQgZXh0ZW5zaW9uPSIxODQwOTk3MDg0IiByb290PSIxLjIuODQwLjExNDM1MC4xLjEzLjI4LjEuMTguNS45OTkiLz4KICAgICAgPHN0YXR1c0NvZGUgY29kZT0ibmV3Ii8+CiAgICAgIDxyZXNwb25zZVByaW9yaXR5Q29kZSBjb2RlPSJJIi8+CiAgICAgIDxwYXJhbWV0ZXJMaXN0PgogICAgICAgIDxwYXRpZW50SWRlbnRpZmllcj4KICAgICAgICAgIDx2YWx1ZSBleHRlbnNpb249IlN1cnlhQnJhbmQiIHJvb3Q9IjIuMTYuODQwLjEuMTEzODgzLjQuMiIvPgogICAgICAgICAgPHNlbWFudGljc1RleHQ+UGF0aWVudC5JZDwvc2VtYW50aWNzVGV4dD4KICAgICAgICA8L3BhdGllbnRJZGVudGlmaWVyPgogICAgICA8L3BhcmFtZXRlckxpc3Q+CiAgICA8L3F1ZXJ5QnlQYXJhbWV0ZXI+CiAgPC9jb250cm9sQWN0UHJvY2Vzcz4KPC9QUlBBX0lOMjAxMzA5VVYwMj4K", + "detail": [ + { + "type": "MSH-10", + "valueBase64Binary": "MS4yLjg0MC4xMTQzNTAuMS4xMy4wLjEuNy4xLjE=" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Bundle.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Bundle.json new file mode 100644 index 000000000..d9459429b --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Bundle.json @@ -0,0 +1,57 @@ +{ + "resourceType": "Bundle", + "id": "bundle-example", + "meta": { + "lastUpdated": "2014-08-18T01:43:30Z" + }, + "type": "searchset", + "total": 3, + "link": [ + { + "relation": "self", + "url": "https://example.com/base/MedicationRequest?patient=347&_include=MedicationRequest.medication" + }, + { + "relation": "next", + "url": "https://example.com/base/MedicationRequest?patient=347&searchId=ff15fd40-ff71-4b48-b366-09c706bed9d0&page=2" + } + ], + "entry": [ + { + "fullUrl": "https://example.com/base/MedicationRequest/3123", + "resource": { + "resourceType": "MedicationRequest", + "id": "3123", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: 3123

intent: order

medication: Medication/example

subject: Patient/347

" + }, + "intent": "order", + "medicationReference": { + "reference": "Medication/example" + }, + "subject": { + "reference": "Patient/347" + } + }, + "search": { + "mode": "match", + "score": 1 + } + }, + { + "fullUrl": "https://example.com/base/Medication/example", + "resource": { + "resourceType": "Medication", + "id": "example", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example

" + } + }, + "search": { + "mode": "include" + } + } + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/CapabilityStatement.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/CapabilityStatement.json new file mode 100644 index 000000000..d9ce6b175 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/CapabilityStatement.json @@ -0,0 +1,195 @@ +{ + "resourceType": "CapabilityStatement", + "id": "example", + "text": { + "status": "generated", + "div": "
\n\t\t\t

The EHR Server supports the following transactions for the resource Person: read, vread, \n update, history, search(name,gender), create and updates.

\n\t\t\t

The EHR System supports the following message: admin-notify::Person.

\n\t\t\t

The EHR Application has a \n general document profile.\n

\n\t\t
" + }, + "url": "urn:uuid:68D043B5-9ECF-4559-A57A-396E0D452311", + "version": "20130510", + "name": "ACME-EHR", + "title": "ACME EHR capability statement", + "status": "draft", + "experimental": true, + "date": "2012-01-04", + "publisher": "ACME Corporation", + "contact": [ + { + "name": "System Administrator", + "telecom": [ + { + "system": "email", + "value": "wile@acme.org" + } + ] + } + ], + "description": "This is the FHIR capability statement for the main EHR at ACME for the private interface - it does not describe the public interface", + "useContext": [ + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "focus" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/variant-state", + "code": "positive" + } + ] + } + } + ], + "jurisdiction": [ + { + "coding": [ + { + "system": "urn:iso:std:iso:3166", + "code": "US", + "display": "United States of America (the)" + } + ] + } + ], + "purpose": "Main EHR capability statement, published for contracting and operational support", + "copyright": "Copyright © Acme Healthcare and GoodCorp EHR Systems", + "kind": "instance", + "instantiates": [ + "http://ihe.org/fhir/CapabilityStatement/pixm-client" + ], + "software": { + "name": "EHR", + "version": "0.00.020.2134", + "releaseDate": "2012-01-04" + }, + "implementation": { + "description": "main EHR at ACME", + "url": "http://10.2.3.4/fhir" + }, + "fhirVersion": "4.0.1", + "format": [ + "xml", + "json" + ], + "patchFormat": [ + "application/xml-patch+xml", + "application/json-patch+json" + ], + "implementationGuide": [ + "http://hl7.org/fhir/us/lab" + ], + "rest": [ + { + "mode": "server", + "documentation": "Main FHIR endpoint for acem health", + "security": { + "cors": true, + "service": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/restful-security-service", + "code": "SMART-on-FHIR" + } + ] + } + ], + "description": "See Smart on FHIR documentation" + }, + "resource": [ + { + "type": "Patient", + "profile": "http://fhir.hl7.org/base/StructureDefinition/7896271d-57f6-4231-89dc-dcc91eab2416", + "documentation": "This server does not let the clients create identities.", + "interaction": [ + { + "code": "read" + }, + { + "code": "vread", + "documentation": "Only supported for patient records since 12-Dec 2012" + }, + { + "code": "update" + }, + { + "code": "history-instance" + }, + { + "code": "create" + }, + { + "code": "history-type" + } + ], + "versioning": "versioned-update", + "readHistory": true, + "updateCreate": false, + "conditionalCreate": true, + "conditionalRead": "full-support", + "conditionalUpdate": false, + "conditionalDelete": "not-supported", + "searchInclude": [ + "Organization" + ], + "searchRevInclude": [ + "Person" + ], + "searchParam": [ + { + "name": "identifier", + "definition": "http://hl7.org/fhir/SearchParameter/Patient-identifier", + "type": "token", + "documentation": "Only supports search by institution MRN" + }, + { + "name": "general-practitioner", + "definition": "http://hl7.org/fhir/SearchParameter/Patient-general-practitioner", + "type": "reference" + } + ] + } + ], + "interaction": [ + { + "code": "transaction" + }, + { + "code": "history-system" + } + ], + "compartment": [ + "http://hl7.org/fhir/CompartmentDefinition/patient" + ] + } + ], + "messaging": [ + { + "endpoint": [ + { + "protocol": { + "system": "http://hl7.org/fhir/message-transport", + "code": "mllp" + }, + "address": "mllp:10.1.1.10:9234" + } + ], + "reliableCache": 30, + "documentation": "ADT A08 equivalent for external system notifications" + } + ], + "document": [ + { + "mode": "consumer", + "documentation": "Basic rules for all documents in the EHR system", + "profile": "http://fhir.hl7.org/base/Profilebc054d23-75e1-4dc6-aca5-838b6b1ac81d/_history/b5fdd9fc-b021-4ea1-911a-721a60663796" + } + ], + "extension": [ + { + "url": "http://hl7.org/fhir/r3/StructureDefinition/extension-CapabilityStatement.acceptUnknown", + "valueCode": "both" + } + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/CodeSystem.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/CodeSystem.json new file mode 100644 index 000000000..3cd483680 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/CodeSystem.json @@ -0,0 +1,84 @@ +{ + "resourceType": "CodeSystem", + "id": "example", + "meta": { + "profile": [ + "http://hl7.org/fhir/StructureDefinition/shareablecodesystem" + ] + }, + "text": { + "status": "generated", + "div": "
\n

CodeSystem "ACME Codes for Cholesterol": This is an example code system that includes \n all the codes for serum cholesterol defined by ACME inc.

\n

Developed by: FHIR project team (example)

\n

Published for testing on 28-Jan 2016

\n

This code system defines all the ACME codes for serum cholesterol:

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Code\n \n Display\n \n Definition\n
chol-mmolSChol (mmol/L)Serum Cholesterol, in mmol/L
chol-massSChol (mg/L)Serum Cholesterol, in mg/L
cholSCholSerum Cholesterol
\n
" + }, + "url": "http://hl7.org/fhir/CodeSystem/example", + "identifier": [ + { + "system": "http://acme.com/identifiers/codesystems", + "value": "internal-cholesterol-inl" + } + ], + "version": "20160128", + "name": "ACME Codes for Cholesterol in Serum/Plasma", + "status": "draft", + "experimental": true, + "date": "2016-01-28", + "publisher": "HL7 International", + "contact": [ + { + "name": "FHIR project team", + "telecom": [ + { + "system": "url", + "value": "http://hl7.org/fhir" + } + ] + } + ], + "description": "This is an example code system that includes all the ACME codes for serum/plasma cholesterol from v2.36.", + "caseSensitive": true, + "content": "complete", + "concept": [ + { + "code": "chol-mmol", + "display": "SChol (mmol/L)", + "definition": "Serum Cholesterol, in mmol/L", + "designation": [ + { + "use": { + "system": "http://acme.com/config/fhir/codesystems/internal", + "code": "internal-label" + }, + "value": "From ACME POC Testing" + } + ] + }, + { + "code": "chol-mass", + "display": "SChol (mg/L)", + "definition": "Serum Cholesterol, in mg/L", + "designation": [ + { + "use": { + "system": "http://acme.com/config/fhir/codesystems/internal", + "code": "internal-label" + }, + "value": "From Paragon Labs" + } + ] + }, + { + "code": "chol", + "display": "SChol", + "definition": "Serum Cholesterol", + "designation": [ + { + "use": { + "system": "http://acme.com/config/fhir/codesystems/internal", + "code": "internal-label" + }, + "value": "Obdurate Labs uses this with both kinds of units..." + } + ] + } + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/ConceptMap.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/ConceptMap.json new file mode 100644 index 000000000..31d4e41b9 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/ConceptMap.json @@ -0,0 +1,61 @@ +{ + "resourceType": "ConceptMap", + "id": "example2", + "text": { + "status": "generated", + "div": "
\n

FHIR-exanple-2 (http://hl7.org/fhir/ConceptMap/example2)

\n

Mapping from http://example.org/fhir/example1 to http://example.org/fhir/example2

\n

DRAFT (not intended for production usage). Published on 13/06/2012 by HL7, Inc (FHIR project team (example): \n http://hl7.org/fhir). \n

\n
\n

An example mapping

\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Source Concept\n \n Equivalence\n \n Destination Concept\n
\n Code [http://example.org/fhir/example1]\n \n http://example.org/fhir/DataElement/example [http://example.org/fhir/example3]\n \n \n Code [http://example.org/fhir/example2]\n
codesome-code:equivalentcode2
\n
" + }, + "url": "http://hl7.org/fhir/ConceptMap/example2", + "name": "FHIR-exanple-2", + "title": "FHIR Example 2", + "status": "draft", + "experimental": true, + "date": "2012-06-13", + "publisher": "HL7, Inc", + "contact": [ + { + "name": "FHIR project team (example)", + "telecom": [ + { + "system": "url", + "value": "http://hl7.org/fhir" + } + ] + } + ], + "description": "An example mapping", + "purpose": "To illustrate mapping features", + "sourceUri": "http://example.org/fhir/example1", + "targetUri": "http://example.org/fhir/example2", + "group": [ + { + "source": "http://example.org/fhir/example1", + "target": "http://example.org/fhir/example2", + "element": [ + { + "code": "code", + "display": "Example Code", + "target": [ + { + "code": "code2", + "display": "Some Example Code", + "equivalence": "equivalent", + "dependsOn": [ + { + "property": "http://example.org/fhir/DataElement/example", + "system": "http://example.org/fhir/example3", + "display": "Something Coded", + "value": "some-code" + } + ] + } + ] + } + ], + "unmapped": { + "mode": "other-map", + "url": "http://example.org/fhir/ConceptMap/map2" + } + } + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Condition.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Condition.json new file mode 100644 index 000000000..ef6d4a179 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Condition.json @@ -0,0 +1,103 @@ +{ + "resourceType": "Condition", + "id": "f201", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: f201

identifier: 12345

clinicalStatus: resolved

verificationStatus: confirmed

category: Problem (Details : {SNOMED CT code '55607006' = 'Problem', given as 'Problem'}; {http://hl7.org/fhir/condition-category code 'problem-list-item' = 'Problem List Item)

severity: Mild (Details : {SNOMED CT code '255604002' = 'Mild', given as 'Mild'})

code: Fever (Details : {SNOMED CT code '386661006' = 'Fever', given as 'Fever'})

bodySite: Entire body as a whole (Details : {SNOMED CT code '38266002' = 'Body as a whole', given as 'Entire body as a whole'})

subject: Roel

context: Encounter/f201

onset: 02/04/2013

abatement: around April 9, 2013

assertedDate: 04/04/2013

asserter: Practitioner/f201

Evidences

-CodeDetail
*degrees C (Details : {SNOMED CT code '258710007' = 'degrees C', given as 'degrees C'})Temperature
" + }, + "identifier": [ + { + "value": "12345" + } + ], + "clinicalStatus": { + "coding": { + "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", + "code": "resolved" + } + }, + "verificationStatus": { + "coding": { + "system": "http://terminology.hl7.org/CodeSystem/condition-ver-status", + "code": "confirmed" + } + }, + "category": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "55607006", + "display": "Problem" + }, + { + "system": "http://hl7.org/fhir/condition-category", + "code": "problem-list-item" + } + ] + } + ], + "severity": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "255604002", + "display": "Mild" + } + ] + }, + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "386661006", + "display": "Fever" + } + ] + }, + "bodySite": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "38266002", + "display": "Entire body as a whole" + } + ] + } + ], + "subject": { + "reference": "Patient/f201", + "display": "Roel" + }, + "onsetDateTime": "2013-04-02", + "abatementString": "around April 9, 2013", + "asserter": { + "reference": "Practitioner/f201" + }, + "evidence": [ + { + "code": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "258710007", + "display": "degrees C" + } + ] + } + ], + "detail": [ + { + "reference": "Observation/f202", + "display": "Temperature" + } + ] + } + ], + "encounter": { + "reference": "Encounter/f201" + }, + "recordedDate": "2013-04-04" +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/DiagnosticReport.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/DiagnosticReport.json new file mode 100644 index 000000000..51eff0126 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/DiagnosticReport.json @@ -0,0 +1,60 @@ +{ + "resourceType": "DiagnosticReport", + "id": "102", + "text": { + "status": "generated", + "div": "
\n\t\t\t

DXA BONE DENSITOMETRY

\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
NAMEXXXXXXX
DOB10/02/1974
REFERRING DRSmith, Jane
INDICATIONSEarly menopause on estrogen levels. No period for 18 months
PROCEDUREDual energy x-ray absorptiometry (DEXA)
\n\t\t\t

Bone Mineral Density

\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
Scan TypeRegionMeasuredAgeBMDT-ScoreZ-Score?BMD(g/cm2)?BMD(%)
AP SpineL1-L417/06/200834.41.148 g/cm²-0.4-0.5--
Left FemurNeck17/06/200834.40.891 g/cm²-1.0-0.9--
Left FemurTotal17/06/200834.40.887 g/cm²-1.2-1.3--
Right FemurNeck17/06/200834.40.885 g/cm²-1.0-1.0--
Right FemurTotal17/06/200834.40.867 g/cm²-1.4-1.4--
\n\t\t\t

Assessment:

\n\t\t\t
    \n\t\t\t\t
  • The Spine L1-L4 BMD is normal.
  • \n\t\t\t\t
  • The Left Femur Neck BMD is in the osteopenic range. Relative fracture risk is about 2.
  • \n\t\t\t\t
  • The Left Femur Total BMD is in the osteopenic range. Relative fracture risk is about 2.
  • \n\t\t\t\t
  • The Right Femur Neck BMD is in the osteopenic range. Relative fracture risk is about 2.
  • \n\t\t\t\t
  • The Right Femur Total BMD is in the osteopenic range. Relative fracture risk is about 2.
  • \n\t\t\t
\n\t\t\t

\n\t\t\t\tCOMMENT\n\t\t\t

\n\t\t\t

Osteopenia on measured BMD. The estimated 10-year probability of fracture based on present age, gender and measured BMD is less than 10%. This absolute fracture risk remains low. A follow-up assessment may be considered in 2 to 3 years to monitor the trend in BMD.

\n\t\t\t

Thank you for your referral. Dr Henry Seven 17/06/2008

\n\t\t\t
\nNote:\nWHO classification of osteoporosis (WHO Technical Report Series 1994: 843)\n- Normal: T-score equal to -1.0 s.d. or higher\n- Osteopenia: T-score  between -1.0 and -2.5 s.d.\n- Osteoporosis: T-score equal to -2.5 s.d. or lower\n- Severe/Established osteoporosis: Osteoporosis with one or more fragility fracture.\nT-score: The number of s.d. from the mean BMD for a gender-matched young adult population.\nZ-score: The number of s.d. from the mean BMD for an age-, weight- and gender-matched population.\nReference for 10-year probability of fracture risk: Kanis JA, Johnell O, Oden A, Dawson A,  De Laet C, Jonsson B. Ten year probabilities of osteoporotic fractures according to BMD and diagnostic thresholds. Osteoporos.Int. 2001;12(12):989-995.\nGE LUNAR PRODIGY DENSITOMETER\n
\n\t\t
" + }, + "status": "final", + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "38269-7" + } + ], + "text": "DXA BONE DENSITOMETRY" + }, + "subject": { + "reference": "Patient/pat2" + }, + "effectiveDateTime": "2008-06-17", + "issued": "2008-06-18T07:23:00+08:00", + "performer": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/r3/StructureDefinition/extension-DiagnosticReport.performer.role", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "66862007", + "display": "Radiologist" + } + ], + "text": "Radiologist" + } + } + ], + "reference": "Practitioner/3ad0687e-f477-468c-afd5-fcc2bf897809", + "display": "Dr Henry Seven" + } + ], + "result": [ + { + "reference": "Observation/bmd" + } + ], + "conclusionCode": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "391040000", + "display": "At risk of osteoporotic fracture" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/DocumentReference.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/DocumentReference.json new file mode 100644 index 000000000..248f2faf1 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/DocumentReference.json @@ -0,0 +1,162 @@ +{ + "resourceType": "DocumentReference", + "id": "example", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example

contained:

masterIdentifier: urn:oid:1.3.6.1.4.1.21367.2005.3.7

identifier: urn:oid:1.3.6.1.4.1.21367.2005.3.7.1234

status: current

docStatus: preliminary

type: Outpatient Note (Details : {LOINC code '34108-1' = 'Outpatient Note', given as 'Outpatient Note'})

class: History and Physical (Details : {http://ihe.net/xds/connectathon/classCodes code 'History and Physical' = 'History and Physical', given as 'History and Physical'})

subject: Patient/xcda

created: 24/12/2005 9:35:00 AM

indexed: 24/12/2005 9:43:41 AM

author: Practitioner/xcda1, id: a2; Gerald Smitty

authenticator: Organization/f001

custodian: Organization/f001

RelatesTos

-CodeTarget
*appendsDocumentReference/example

description: Physical

securityLabel: very restricted (Details : {http://hl7.org/fhir/v3/Confidentiality code 'V' = 'very restricted', given as 'very restricted'})

Contents

-AttachmentFormat
*History and Physical Specification (Details: urn:oid:1.3.6.1.4.1.19376.1.2.3 code urn:ihe:pcc:handp:2008 = 'urn:ihe:pcc:handp:2008', stated as 'History and Physical Specification')

context

encounter: Encounter/xcda

event: Arm (Details : {http://ihe.net/xds/connectathon/eventCodes code 'T-D8200' = 'T-D8200', given as 'Arm'})

period: 23/12/2004 8:00:00 AM --> 23/12/2004 8:01:00 AM

facilityType: Outpatient (Details : {http://www.ihe.net/xds/connectathon/healthcareFacilityTypeCodes code 'Outpatient' = 'Outpatient', given as 'Outpatient'})

practiceSetting: General Medicine (Details : {http://www.ihe.net/xds/connectathon/practiceSettingCodes code 'General Medicine' = 'General Medicine', given as 'General Medicine'})

sourcePatientInfo: Patient/xcda

Relateds

-IdentifierRef
*urn:oid:1.3.6.1.4.1.21367.2005.3.7.2345Patient/xcda
" + }, + "contained": [ + { + "resourceType": "Practitioner", + "id": "a2", + "name": [ + { + "family": "Smitty", + "given": [ + "Gerald" + ] + } + ] + } + ], + "masterIdentifier": { + "system": "urn:ietf:rfc:3986", + "value": "urn:oid:1.3.6.1.4.1.21367.2005.3.7" + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:oid:1.3.6.1.4.1.21367.2005.3.7.1234" + } + ], + "status": "current", + "docStatus": "preliminary", + "type": { + "coding": [ + { + "system": "http://loinc.org", + "code": "34108-1", + "display": "Outpatient Note" + } + ] + }, + "subject": { + "reference": "Patient/xcda" + }, + "author": [ + { + "reference": "Practitioner/xcda1" + }, + { + "reference": "#a2" + } + ], + "authenticator": { + "reference": "Organization/f001" + }, + "custodian": { + "reference": "Organization/f001" + }, + "relatesTo": [ + { + "code": "appends", + "target": { + "reference": "DocumentReference/example" + } + } + ], + "description": "Physical", + "securityLabel": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/Confidentiality", + "code": "V", + "display": "very restricted" + } + ] + } + ], + "content": [ + { + "attachment": { + "contentType": "application/hl7-v3+xml", + "language": "en-US", + "url": "http://example.org/xds/mhd/Binary/07a6483f-732b-461e-86b6-edb665c45510", + "size": 3654, + "hash": "2jmj7l5rSw0yVb/vlWAYkK/YBwk=" + }, + "format": { + "system": "urn:oid:1.3.6.1.4.1.19376.1.2.3", + "code": "urn:ihe:pcc:handp:2008", + "display": "History and Physical Specification" + } + } + ], + "context": { + "encounter": [ + { + "reference": "Encounter/xcda" + } + ], + "event": [ + { + "coding": [ + { + "system": "http://ihe.net/xds/connectathon/eventCodes", + "code": "T-D8200", + "display": "Arm" + } + ] + } + ], + "period": { + "start": "2004-12-23T05:00:00+08:00", + "end": "2004-12-23T05:01:00+08:00" + }, + "facilityType": { + "coding": [ + { + "system": "http://www.ihe.net/xds/connectathon/healthcareFacilityTypeCodes", + "code": "Outpatient", + "display": "Outpatient" + } + ] + }, + "practiceSetting": { + "coding": [ + { + "system": "http://www.ihe.net/xds/connectathon/practiceSettingCodes", + "code": "General Medicine", + "display": "General Medicine" + } + ] + }, + "sourcePatientInfo": { + "reference": "Patient/xcda" + }, + "related": [ + { + "reference": "Patient/xcda" + } + ] + }, + "category": [ + { + "coding": [ + { + "system": "http://ihe.net/xds/connectathon/classCodes", + "code": "History and Physical", + "display": "History and Physical" + } + ] + } + ], + "date": "2005-12-24T06:43:41+08:00", + "extension": [ + { + "url": "http://hl7.org/fhir/r3/StructureDefinition/extension-DocumentReference.created", + "valuedateTime": "2005-12-24T06:35:00+08:00" + } + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/ImagingStudy.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/ImagingStudy.json new file mode 100644 index 000000000..a28ce17ca --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/ImagingStudy.json @@ -0,0 +1,166 @@ +{ + "resourceType": "ImagingStudy", + "id": "example-xr", + "text": { + "status": "generated", + "div": "
XR Wrist 3+ Views. John Smith (MRN: 09236). Accession: W12342398. Performed: 2017-01-01. 1 series, 2 images.
" + }, + "identifier": [ + { + "system": "urn:dicom:uid", + "value": "urn:oid:2.16.124.113543.6003.1154777499.30246.19789.3503430046" + }, + { + "use": "secondary", + "value": "55551234", + "assigner": { + "reference": "Organization/dicom-organization" + } + }, + { + "use": "usual", + "type": { + "coding": [ + { + "system": "http://hl7.org/fhir/v2/0203", + "code": "ACSN" + } + ] + }, + "value": "W12342398", + "assigner": { + "reference": "Organization/dicom-organization" + } + } + ], + "started": "2017-01-01T16:01:20+08:00", + "basedOn": [ + { + "reference": "ProcedureRequest/example" + } + ], + "referrer": { + "reference": "Practitioner/example" + }, + "interpreter": [ + { + "reference": "Practitioner/example" + } + ], + "endpoint": [ + { + "reference": "Endpoint/example-wadors" + } + ], + "numberOfSeries": 1, + "numberOfInstances": 2, + "procedureReference": { + "reference": "Procedure/example" + }, + "procedureCode": [ + { + "coding": [ + { + "system": "http://www.radlex.org", + "code": "RPID2589", + "display": "XR Wrist 3+ Views" + } + ], + "text": "XR Wrist 3+ Views" + } + ], + "description": "XR Wrist 3+ Views", + "series": [ + { + "uid": "2.16.124.113543.6003.1154777499.30246.19789.3503430045.1", + "number": 3, + "modality": { + "system": "http://dicom.nema.org/resources/ontology/DCM", + "code": "DX" + }, + "description": "XR Wrist 3+ Views", + "numberOfInstances": 2, + "endpoint": [ + { + "reference": "Endpoint/example-wadors" + } + ], + "bodySite": { + "system": "http://snomed.info/sct", + "code": "T-15460", + "display": "Wrist Joint" + }, + "laterality": { + "system": "http://snomed.info/sct", + "code": "419161000", + "display": "Unilateral left" + }, + "started": "2011-01-01T16:01:20+08:00", + "performer": [ + { + "function": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType", + "code": "PRF" + } + ] + }, + "actor": { + "reference": "Practitioner/example" + } + } + ], + "instance": [ + { + "uid": "2.16.124.113543.6003.1154777499.30246.19789.3503430045.1.1", + "number": 1, + "sopClass": { + "system": "urn:ietf:rfc:3986", + "code": "urn:oid:1.2.840.10008.5.1.4.1.1.2" + }, + "title": "PA VIEW" + }, + { + "uid": "2.16.124.113543.6003.1154777499.30246.19789.3503430045.1.2", + "number": 2, + "sopClass": { + "system": "urn:ietf:rfc:3986", + "code": "urn:oid:1.2.840.10008.5.1.4.1.1.2" + }, + "title": "LL VIEW" + } + ], + "extension": [ + { + "url": "http://hl7.org/fhir/r3/StructureDefinition/extension-ImagingStudy.series.availability", + "valueCode": "ONLINE" + } + ] + } + ], + "status": "available", + "modality": [ + { + "system": "http://dicom.nema.org/resources/ontology/DCM", + "code": "DX" + } + ], + "subject": { + "reference": "Patient/dicom" + }, + "encounter": { + "reference": "Encounter/example" + }, + "reasonCode": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "357009", + "display": "Closed fracture of trapezoidal bone of wrist" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Immunization.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Immunization.json new file mode 100644 index 000000000..c5ff67780 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Immunization.json @@ -0,0 +1,155 @@ +{ + "resourceType": "Immunization", + "id": "example", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example

identifier: urn:oid:1.3.6.1.4.1.21367.2005.3.7.1234

status: completed

notGiven: false

vaccineCode: Fluvax (Influenza) (Details : {urn:oid:1.2.36.1.2001.1005.17 code 'FLUVAX' = 'Fluvax)

patient: Patient/example

encounter: Encounter/example

date: 10/01/2013

primarySource: true

location: Location/1

manufacturer: Organization/hl7

lotNumber: AAJN11K

expirationDate: 15/02/2015

site: left arm (Details : {http://hl7.org/fhir/v3/ActSite code 'LA' = 'left arm', given as 'left arm'})

route: Injection, intramuscular (Details : {http://hl7.org/fhir/v3/RouteOfAdministration code 'IM' = 'Injection, intramuscular', given as 'Injection, intramuscular'})

doseQuantity: 5 mg (Details: UCUM code mg = 'mg')

practitioner

role: Ordering Provider (Details : {http://hl7.org/fhir/v2/0443 code 'OP' = 'Ordering Provider)

actor: Practitioner/example

practitioner

role: Administering Provider (Details : {http://hl7.org/fhir/v2/0443 code 'AP' = 'Administering Provider)

actor: Practitioner/example

note: Notes on adminstration of vaccine

Explanations

-Reason
*Procedure to meet occupational requirement (Details : {SNOMED CT code '429060002' = 'Procedure to meet occupational requirement)

Reactions

-DateDetailReported
*10/01/2013Observation/exampletrue

VaccinationProtocols

-DoseSequenceDescriptionAuthoritySeriesSeriesDosesTargetDiseaseDoseStatusDoseStatusReason
*1Vaccination Protocol Sequence 1Organization/hl7Vaccination Series 12Gestational rubella syndrome (Details : {SNOMED CT code '1857005' = 'Gestational rubella syndrome)Counts (Details : {http://hl7.org/fhir/vaccination-protocol-dose-status code 'count' = 'Counts', given as 'Counts'})Cold chain break (Details : {http://hl7.org/fhir/vaccination-protocol-dose-status-reason code 'coldchbrk' = 'Cold chain break', given as 'Cold chain break'})
" + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:oid:1.3.6.1.4.1.21367.2005.3.7.1234" + } + ], + "status": "completed", + "vaccineCode": { + "coding": [ + { + "system": "urn:oid:1.2.36.1.2001.1005.17", + "code": "FLUVAX" + } + ], + "text": "Fluvax (Influenza)" + }, + "patient": { + "reference": "Patient/example" + }, + "encounter": { + "reference": "Encounter/example" + }, + "primarySource": true, + "location": { + "reference": "Location/1" + }, + "manufacturer": { + "reference": "Organization/hl7" + }, + "lotNumber": "AAJN11K", + "expirationDate": "2015-02-15", + "site": { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/ActSite", + "code": "LA", + "display": "left arm" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/RouteOfAdministration", + "code": "IM", + "display": "Injection, intramuscular" + } + ] + }, + "doseQuantity": { + "value": 5, + "system": "http://unitsofmeasure.org", + "code": "mg" + }, + "note": [ + { + "text": "Notes on adminstration of vaccine" + } + ], + "reaction": [ + { + "date": "2013-01-10", + "detail": { + "reference": "Observation/example" + }, + "reported": true + } + ], + "occurrenceDateTime": "2013-01-10", + "performer": [ + { + "actor": { + "reference": "Practitioner/example" + }, + "function": { + "coding": [ + { + "system": "http://hl7.org/fhir/v2/0443", + "code": "OP" + } + ] + } + }, + { + "actor": { + "reference": "Practitioner/example" + }, + "function": { + "coding": [ + { + "system": "http://hl7.org/fhir/v2/0443", + "code": "AP" + } + ] + } + } + ], + "protocolApplied": [ + { + "authority": { + "reference": "Organization/hl7" + }, + "series": "Vaccination Series 1", + "targetDisease": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "1857005" + } + ] + } + ], + "doseNumberPositiveInt": 1, + "seriesDosesPositiveInt": 2, + "extension": [ + { + "url": "http://hl7.org/fhir/r3/StructureDefinition/extension-Immunization.vaccinationProtocol.description", + "valueString": "Vaccination Protocol Sequence 1" + }, + { + "url": "http://hl7.org/fhir/r3/StructureDefinition/extension-Immunization.vaccinationProtocol.doseStatus", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/vaccination-protocol-dose-status", + "code": "count", + "display": "Counts" + } + ] + } + }, + { + "url": "http://hl7.org/fhir/r3/StructureDefinition/extension-Immunization.vaccinationProtocol.doseStatusReason", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/vaccination-protocol-dose-status-reason", + "code": "coldchbrk", + "display": "Cold chain break" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Location.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Location.json new file mode 100644 index 000000000..127870d4a --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Location.json @@ -0,0 +1,79 @@ +{ + "resourceType": "Location", + "id": "1", + "text": { + "status": "generated", + "div": "
Burgers UMC, South Wing, second floor
" + }, + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/location-alias", + "valueString": "Burgers University Medical Center, South Wing, second floor" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/location-alias", + "valueString": "BU MC, SW, F2" + } + ], + "identifier": [ + { + "value": "B1-S.F2" + } + ], + "status": "active", + "name": "South Wing, second floor", + "description": "Second floor of the Old South Wing, formerly in use by Psychiatry", + "mode": "instance", + "telecom": [ + { + "system": "phone", + "value": "2328", + "use": "work" + }, + { + "system": "fax", + "value": "2329", + "use": "work" + }, + { + "system": "email", + "value": "second wing admissions" + }, + { + "system": "url", + "value": "http://sampleorg.com/southwing", + "use": "work" + } + ], + "address": { + "use": "work", + "line": [ + "Galapagosweg 91, Building A" + ], + "city": "Den Burg", + "postalCode": "9105 PZ", + "country": "NLD" + }, + "physicalType": { + "coding": [ + { + "system": "http://hl7.org/fhir/location-physical-type", + "code": "wi", + "display": "Wing" + } + ] + }, + "position": { + "longitude": -83.6945691, + "latitude": 42.25475478, + "altitude": 0 + }, + "managingOrganization": { + "reference": "Organization/f001" + }, + "endpoint": [ + { + "reference": "Endpoint/example" + } + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Medication.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Medication.json new file mode 100644 index 000000000..cd477e16d --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Medication.json @@ -0,0 +1,85 @@ +{ + "resourceType": "Medication", + "id": "med0303", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: med0303

contained:

code: Alemtuzumab 10mg/ml (Lemtrada) (Details : {RxNorm code '1594660' = '1594660', given as 'Alemtuzumab 10mg/ml (Lemtrada)'})

isBrand: true

manufacturer: id: org6; name: Genzyme

form: Injection solution (qualifier vallue) (Details : {SNOMED CT code '385219001' = 'Injection solution', given as 'Injection solution (qualifier vallue)'})

Ingredients

-Item[x]Amount
*Alemtuzamab (substance) (Details : {SNOMED CT code '129472003' = 'Alemtuzumab', given as 'Alemtuzamab (substance)'})12 mg (Details: UCUM code mg = 'mg')/1.2 mL (Details: UCUM code mL = 'mL')

package

container: Vial (Details : {SNOMED CT code '415818006' = 'Vial', given as 'Vial'})

Contents

-Item[x]Amount
*Alemtuzumab 30mg/3mL infusion concentrate (product) (Details : {SNOMED CT code '408596005' = 'Alemtuzumab 30mg/3mL infusion concentrate', given as 'Alemtuzumab 30mg/3mL infusion concentrate (product)'})3 mL (Details: UCUM code mL = 'mL')

Batches

-LotNumberExpirationDate
*949478822/05/2017
" + }, + "contained": [ + { + "resourceType": "Organization", + "id": "org6", + "name": "Genzyme" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1594660", + "display": "Alemtuzumab 10mg/ml (Lemtrada)" + } + ] + }, + "manufacturer": { + "reference": "#org6" + }, + "form": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "385219001", + "display": "Injection solution (qualifier vallue)" + } + ] + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "129472003", + "display": "Alemtuzamab (substance)" + } + ] + }, + "strength": { + "numerator": { + "value": 12, + "system": "http://unitsofmeasure.org", + "code": "mg" + }, + "denominator": { + "value": 1.2, + "system": "http://unitsofmeasure.org", + "code": "mL" + } + } + } + ], + "extension": [ + { + "url": "hhttp://hl7.org/fhir/r3/StructureDefinition/extension-Medication.isBrand", + "valueBoolean": "true" + }, + { + "url": "http://hl7.org/fhir/r3/StructureDefinition/extension-Medication.package.container", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "415818006", + "display": "Vial" + } + ] + } + } + ], + "batch": [ + { + "lotNumber": "9494788", + "expirationDate": "2017-05-22" + } + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/MedicationRequest.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/MedicationRequest.json new file mode 100644 index 000000000..26508e7fc --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/MedicationRequest.json @@ -0,0 +1,196 @@ +{ + "resourceType": "MedicationRequest", + "id": "medrx0302", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: medrx0302

contained:

identifier: 12345689 (OFFICIAL)

status: active

intent: order

medication: id: med0320; Azithromycin 250mg capsule (product) (Details : {SNOMED CT code '324252006' = 'Azithromycin 250mg capsule', given as 'Azithromycin 250mg capsule (product)'})

subject: Donald Duck

context: encounter who leads to this prescription

authoredOn: 15/01/2015

Requesters

-AgentOnBehalfOf
*Patrick PumpOrganization/f002

reasonCode: Traveller's Diarrhea (disorder) (Details : {SNOMED CT code '11840006' = 'Traveler's diarrhea', given as 'Traveller's Diarrhea (disorder)'})

note: Patient told to take with food

dosageInstruction: ,

DispenseRequests

-ValidityPeriodNumberOfRepeatsAllowedQuantityExpectedSupplyDuration
*15/01/2015 --> 15/01/201616 TAB (Details: http://hl7.org/fhir/v3/orderableDrugForm code TAB = 'Tablet')5 days (Details: UCUM code d = 'd')

Substitutions

-AllowedReason
*trueformulary policy (Details : {http://hl7.org/fhir/v3/ActReason code 'FP' = 'formulary policy', given as 'formulary policy'})
" + }, + "contained": [ + { + "resourceType": "Medication", + "id": "med0320", + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsule (product)" + } + ] + } + } + ], + "identifier": [ + { + "use": "official", + "system": "http://www.bmc.nl/portal/prescriptions", + "value": "12345689" + } + ], + "status": "active", + "intent": "order", + "medicationReference": { + "reference": "#med0320" + }, + "subject": { + "reference": "Patient/pat1", + "display": "Donald Duck" + }, + "authoredOn": "2015-01-15", + "requester": { + "reference": "Practitioner/f007", + "display": "Patrick Pump" + }, + "reasonCode": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "11840006", + "display": "Traveller's Diarrhea (disorder)" + } + ] + } + ], + "note": [ + { + "text": "Patient told to take with food" + } + ], + "dosageInstruction": [ + { + "sequence": 1, + "text": "Two tablets at once", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "311504000", + "display": "With or after food" + } + ] + } + ], + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral Route" + } + ] + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421521009", + "display": "Swallow - dosing instruction imperative (qualifier value)" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 2, + "unit": "TAB", + "system": "http://hl7.org/fhir/v3/orderableDrugForm", + "code": "TAB" + } + } + ] + }, + { + "sequence": 2, + "text": "One tablet daily for 4 days", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "311504000", + "display": "With or after food" + } + ] + } + ], + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral Route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 1, + "unit": "TAB", + "system": "http://hl7.org/fhir/v3/orderableDrugForm", + "code": "TAB" + } + } + ] + } + ], + "dispenseRequest": { + "validityPeriod": { + "start": "2015-01-15", + "end": "2016-01-15" + }, + "numberOfRepeatsAllowed": 1, + "quantity": { + "value": 6, + "unit": "TAB", + "system": "http://hl7.org/fhir/v3/orderableDrugForm", + "code": "TAB" + }, + "expectedSupplyDuration": { + "value": 5, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + } + }, + "substitution": { + "reason": { + "coding": [ + { + "system": "http://hl7.org/fhir/v3/ActReason", + "code": "FP", + "display": "formulary policy" + } + ] + }, + "allowedBoolean": true + }, + "encounter": { + "reference": "Encounter/f001", + "display": "encounter who leads to this prescription" + }, + "extension": [ + { + "url": "http://hl7.org/fhir/r3/StructureDefinition/extension-MedicationRequest.requester.onBehalfOf", + "valueReference": { + "reference": "Organization/f002" + } + } + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/MedicationStatement.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/MedicationStatement.json new file mode 100644 index 000000000..060064889 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/MedicationStatement.json @@ -0,0 +1,123 @@ +{ + "resourceType": "MedicationStatement", + "id": "example001", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example001

contained:

identifier: 12345689 (OFFICIAL)

status: active

category: Inpatient (Details : {http://hl7.org/fhir/medication-statement-category code 'inpatient' = 'Inpatient', given as 'Inpatient'})

medication: id: med0309; Tylenol PM (Details : {http://hl7.org/fhir/sid/ndc code '50580-506-02' = '50580-506-02', given as 'Tylenol PM'}); isBrand; Film-coated tablet (qualifier value) (Details : {SNOMED CT code '385057009' = 'Film-coated tablet', given as 'Film-coated tablet (qualifier value)'})

effective: 23/01/2015

dateAsserted: 22/02/2015

informationSource: Donald Duck

subject: Donald Duck

derivedFrom: MedicationRequest/medrx002

taken: n

reasonCode: Restless Legs (Details : {SNOMED CT code '32914008' = 'Restless legs', given as 'Restless Legs'})

note: Patient indicates they miss the occasional dose

dosage:

" + }, + "identifier": [ + { + "use": "official", + "system": "http://www.bmc.nl/portal/medstatements", + "value": "12345689" + } + ], + "status": "not-taken", + "category": { + "coding": [ + { + "system": "http://hl7.org/fhir/medication-statement-category", + "code": "inpatient", + "display": "Inpatient" + } + ] + }, + "medicationReference": { + "reference": "#med0309" + }, + "effectiveDateTime": "2015-01-23", + "dateAsserted": "2015-02-22", + "informationSource": { + "reference": "Patient/pat1", + "display": "Donald Duck" + }, + "subject": { + "reference": "Patient/pat1", + "display": "Donald Duck" + }, + "derivedFrom": [ + { + "reference": "MedicationRequest/medrx002" + } + ], + "reasonCode": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "32914008", + "display": "Restless Legs" + } + ] + } + ], + "note": [ + { + "text": "Patient indicates they miss the occasional dose" + } + ], + "dosage": [ + { + "sequence": 1, + "text": "1-2 tablets once daily at bedtime as needed for restless legs", + "additionalInstruction": [ + { + "text": "Taking at bedtime" + } + ], + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "asNeededCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "32914008", + "display": "Restless Legs" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral Route" + } + ] + }, + "doseAndRate": [ + { + "doseRange": { + "low": { + "value": 1, + "unit": "TAB", + "system": "http://hl7.org/fhir/v3/orderableDrugForm", + "code": "TAB" + }, + "high": { + "value": 2, + "unit": "TAB", + "system": "http://hl7.org/fhir/v3/orderableDrugForm", + "code": "TAB" + } + } + } + ] + } + ], + "extension": [ + { + "url": "http://hl7.org/fhir/r3/StructureDefinition/extension-MedicationStatement.status", + "valueCode": "active" + }, + { + "url": "http://hl7.org/fhir/r3/StructureDefinition/extension-MedicationStatement.taken", + "valueCode": "n" + } + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/MessageHeader.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/MessageHeader.json new file mode 100644 index 000000000..890207cb8 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/MessageHeader.json @@ -0,0 +1,60 @@ +{ + "resourceType": "MessageHeader", + "id": "1cbdfb97-5859-48a4-8301-d54eab818d68", + "text": { + "status": "generated", + "div": "
\n

Update Person resource for Peter James CHALMERS (Jim), MRN: 12345 (Acme Healthcare)

\n
" + }, + "destination": [ + { + "name": "Acme Message Gateway", + "target": { + "reference": "Device/example" + }, + "endpoint": "llp:10.11.12.14:5432", + "receiver": { + "reference": "http://acme.com/ehr/fhir/Practitioner/2323-33-4" + } + } + ], + "sender": { + "reference": "Organization/1" + }, + "enterer": { + "reference": "Practitioner/example" + }, + "author": { + "reference": "Practitioner/example" + }, + "source": { + "name": "Acme Central Patient Registry", + "software": "FooBar Patient Manager", + "version": "3.1.45.AABB", + "contact": { + "system": "phone", + "value": "+1 (555) 123 4567" + }, + "endpoint": "llp:10.11.12.13:5432" + }, + "reason": { + "coding": [ + { + "system": "http://hl7.org/fhir/message-reasons-encounter", + "code": "admit" + } + ] + }, + "response": { + "identifier": "5015fe84-8e76-4526-89d8-44b322e8d4fb", + "code": "ok" + }, + "focus": [ + { + "reference": "Patient/example" + } + ], + "eventCoding": { + "system": "http://hl7.org/fhir/message-events", + "code": "admin-notify" + } +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Observation.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Observation.json new file mode 100644 index 000000000..99e0c2a4c --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Observation.json @@ -0,0 +1,64 @@ +{ + "resourceType": "Observation", + "id": "example-TPMT-haplotype-two", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example-TPMT-haplotype-two

status: unknown

code: Haplotype Call (Details : {SNOMED CT code '363779003' = '363779003', given as 'Genotype determination'})

subject: E***********

issued: 03/04/2013 3:30:10 PM

value: *4 (Details : {http://pharmakb.org code 'PA166128353' = 'PA166128353', given as '*4'})

Relateds

-TypeTarget
*derived-fromSequence/example-TPMT-two
" + }, + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/observation-geneticsGene", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://www.genenames.org", + "code": "12014", + "display": "TPMT" + } + ] + } + }, + { + "url": "http://hl7.org/fhir/3.0/StructureDefinition/Observation.sequelTo", + "valueReference": { + "reference": "Sequence/example-TPMT-two" + } + }, + { + "url": "http://hl7.org/fhir/3.0/StructureDefinition/Observation.interferedBy", + "valueReference": { + "reference": "Sequence/example-TPMT-two" + } + } + ], + "status": "unknown", + "code": { + "coding": [ + { + "system": "http://snomed.info", + "code": "363779003", + "display": "Genotype determination" + } + ], + "text": "Haplotype Call" + }, + "subject": { + "reference": "Patient/example", + "display": "E***********" + }, + "issued": "2013-04-03T22:30:10+08:00", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://pharmakb.org", + "code": "PA166128353", + "display": "*4" + } + ] + }, + "derivedFrom": [ + { + "reference": "Sequence/example-TPMT-two" + } + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/OperationDefinition.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/OperationDefinition.json new file mode 100644 index 000000000..88b5f50d7 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/OperationDefinition.json @@ -0,0 +1,221 @@ +{ + "resourceType": "OperationDefinition", + "id": "CodeSystem-lookup", + "text": { + "status": "generated", + "div": "
!-- Snipped for Brevity -->
" + }, + "url": "http://hl7.org/fhir/OperationDefinition/CodeSystem-lookup", + "name": "Concept Look Up & Decomposition", + "status": "draft", + "kind": "operation", + "date": "2019-10-24T08:53:00+08:00", + "publisher": "HL7 (FHIR Project)", + "contact": [ + { + "telecom": [ + { + "system": "url", + "value": "http://hl7.org/fhir" + }, + { + "system": "email", + "value": "fhir@lists.hl7.org" + } + ] + } + ], + "description": "Given a code/system, or a Coding, get additional details about the concept, including definition, status, designations, and properties. One of the products of this operation is a full decomposition of a code from a structure terminology", + "code": "lookup", + "comment": "Note that the $lookup operation is more than just a code system search - the server finds the concept, and gathers the return information from the underlying code system definitions.", + "resource": [ + "CodeSystem" + ], + "system": false, + "type": true, + "instance": false, + "parameter": [ + { + "name": "code", + "use": "in", + "min": 0, + "max": "1", + "documentation": "The code that is to be located. If a code is provided, a system must be provided", + "type": "code", + "binding": { + "valueSet": "test" + } + }, + { + "name": "system", + "use": "in", + "min": 0, + "max": "1", + "documentation": "The system for the code that is to be located", + "type": "uri" + }, + { + "name": "version", + "use": "in", + "min": 0, + "max": "1", + "documentation": "The version of the system, if one was provided in the source data", + "type": "string" + }, + { + "name": "coding", + "use": "in", + "min": 0, + "max": "1", + "documentation": "A coding to look up", + "type": "Coding" + }, + { + "name": "date", + "use": "in", + "min": 0, + "max": "1", + "documentation": "The date for which the information should be returned. Normally, this is the current conditions (which is the default value) but under some circumstances, systems need to acccess this information as it would have been in the past. A typical example of this would be where code selection is constrained to the set of codes that were available when the patient was treated, not when the record is being edited. Note that which date is appropriate is a matter for implementation policy.", + "type": "dateTime" + }, + { + "name": "displayLanguage", + "use": "in", + "min": 0, + "max": "1", + "documentation": "The requested language for display (see ExpansionProfile.displayLanguage)", + "type": "code" + }, + { + "name": "property", + "use": "in", + "min": 0, + "max": "*", + "documentation": "A property that the client wishes to be returned in the output. If no properties are specified, the server chooses what to return. The following properties are defined for all code systems: url, name, version (code system info) and code information: display, definition, designation, parent and child, and for designations, lang.X where X is a designation language code. Some of the properties are returned explicit in named parameters (when the names match), and the rest (except for lang.X) in the property parameter group", + "type": "code" + }, + { + "name": "name", + "use": "out", + "min": 1, + "max": "1", + "documentation": "A display name for the code system", + "type": "string" + }, + { + "name": "version", + "use": "out", + "min": 0, + "max": "1", + "documentation": "The version that these details are based on", + "type": "string" + }, + { + "name": "display", + "use": "out", + "min": 1, + "max": "1", + "documentation": "The preferred display for this concept", + "type": "string" + }, + { + "name": "designation", + "use": "out", + "min": 0, + "max": "*", + "documentation": "Additional representations for this concept", + "part": [ + { + "name": "language", + "use": "out", + "min": 0, + "max": "1", + "documentation": "The language this designation is defined for", + "type": "code" + }, + { + "name": "use", + "use": "out", + "min": 0, + "max": "1", + "documentation": "A code that details how this designation would be used", + "type": "Coding" + }, + { + "name": "value", + "use": "out", + "min": 1, + "max": "1", + "documentation": "The text value for this designation", + "type": "string" + } + ] + }, + { + "name": "property", + "use": "out", + "min": 0, + "max": "*", + "documentation": "One or more properties that contain additional information about the code, including status. For complex terminologies (e.g. SNOMED CT, LOINC, medications), these properties serve to decompose the code", + "part": [ + { + "name": "code", + "use": "out", + "min": 1, + "max": "1", + "documentation": "Identifies the property returned", + "type": "code" + }, + { + "name": "value", + "use": "out", + "min": 0, + "max": "1", + "documentation": "The value of the property returned", + "type": "code" + }, + { + "name": "description", + "use": "out", + "min": 0, + "max": "1", + "documentation": "Human Readable representation of the property value (e.g. display for a code)", + "type": "string" + }, + { + "name": "subproperty", + "use": "out", + "min": 0, + "max": "*", + "documentation": "Nested Properties (mainly used for SNOMED CT decomposition, for relationship Groups)", + "part": [ + { + "name": "code", + "use": "out", + "min": 1, + "max": "1", + "documentation": "Identifies the sub-property returned", + "type": "code" + }, + { + "name": "value", + "use": "out", + "min": 1, + "max": "1", + "documentation": "The value of the sub-property returned", + "type": "code" + }, + { + "name": "description", + "use": "out", + "min": 0, + "max": "1", + "documentation": "Human Readable representation of the property value (e.g. display for a code)", + "type": "string" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/OperationOutcome.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/OperationOutcome.json new file mode 100644 index 000000000..3e4981dfd --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/OperationOutcome.json @@ -0,0 +1,24 @@ +{ + "resourceType": "OperationOutcome", + "id": "101", + "text": { + "status": "additional", + "div": "
\n

W is not a recognized code for Gender.

\n
" + }, + "issue": [ + { + "severity": "error", + "code": "code-invalid", + "details": { + "text": "The code \"W\" is not known and not legal in this context" + }, + "diagnostics": "Acme.Interop.FHIRProcessors.Patient.processGender line 2453", + "location": [ + "/f:Person/f:gender" + ], + "expression": [ + "Person.gender" + ] + } + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Organization.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Organization.json new file mode 100644 index 000000000..8a3dacf8f --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Organization.json @@ -0,0 +1,71 @@ +{ + "resourceType": "Organization", + "id": "f003", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: f003

active: true

type: Hospital Department (Details : {http://hl7.org/fhir/organization-type code 'dept' = 'Hospital Department', given as 'Hospital Department'})

name: Burgers UMC Ear,Nose,Throat unit

telecom: ph: 022-655 6780

address: West Wing, floor 5

partOf: Organization/f001

Contacts

-PurposeNameTelecomAddress
*Administrative (Details : {http://hl7.org/fhir/contactentity-type code 'ADMIN' = 'Administrative)mr. F. de Hondph: 022-655 7654West Wing, floor 5
" + }, + "active": true, + "type": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/organization-type", + "code": "dept", + "display": "Hospital Department" + } + ] + } + ], + "name": "Burgers UMC Ear,Nose,Throat unit", + "telecom": [ + { + "system": "phone", + "value": "022-655 6780" + } + ], + "address": [ + { + "line": [ + "West Wing, floor 5" + ] + } + ], + "partOf": { + "reference": "Organization/f001" + }, + "contact": [ + { + "purpose": { + "coding": [ + { + "system": "http://hl7.org/fhir/contactentity-type", + "code": "ADMIN" + } + ] + }, + "name": { + "text": "mr. F. de Hond" + }, + "telecom": [ + { + "system": "phone", + "value": "022-655 7654" + }, + { + "system": "email", + "value": "KNO@burgersumc.nl" + }, + { + "system": "fax", + "value": "022-655 0998" + } + ], + "address": { + "line": [ + "West Wing, floor 5" + ] + } + } + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Parameters.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Parameters.json new file mode 100644 index 000000000..b61f4e031 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Parameters.json @@ -0,0 +1,25 @@ +{ + "resourceType": "Parameters", + "id": "example", + "parameter": [ + { + "name": "start", + "valueDate": "2010-01-01" + }, + { + "name": "end", + "resource": { + "resourceType": "Binary", + "contentType": "text/plain", + "data": "VGhpcyBpcyBhIHRlc3QgZXhhbXBsZQ==" + } + }, + { + "name": "testMoney", + "valueMoney": { + "value": "10", + "currency": "test" + } + } + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Patient.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Patient.json new file mode 100644 index 000000000..3ed09ec5a --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Patient.json @@ -0,0 +1,112 @@ +{ + "resourceType": "Patient", + "id": "animal", + "text": { + "status": "generated", + "div": "
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
IdKenzi (Dog: Golden Retriever)
OwnerPeter Chalmers, 534 Erewhon, Pleasantville, Vic, 3999
ContactsWork: (03) 5555 6473
IdDog Tag: 1234123 (Maroondah City Council)
\n \n
" + }, + "identifier": [ + { + "type": { + "text": "Dog Tag" + }, + "system": "http://www.maroondah.vic.gov.au/AnimalRegFees.aspx", + "value": "1234123", + "period": { + "start": "2010-05-31" + }, + "assigner": { + "display": "Maroondah City Council" + } + } + ], + "active": true, + "name": [ + { + "use": "usual", + "given": [ + "Kenzi" + ] + } + ], + "gender": "female", + "birthDate": "2010-03-23", + "contact": [ + { + "relationship": [ + { + "coding": [ + { + "system": "http://hl7.org/fhir/v2/0131", + "code": "C" + } + ] + } + ], + "name": { + "family": "Chalmers", + "given": [ + "Peter", + "James" + ] + }, + "telecom": [ + { + "system": "phone", + "value": "(03) 5555 6473", + "use": "work" + } + ] + } + ], + "managingOrganization": { + "display": "Pete's Vetinary Services" + }, + "extension": [ + { + "url": "http://hl7.org/fhir/r4/StructureDefinition/patient-animal", + "extension": [ + { + "url": "species", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/animal-species", + "code": "canislf", + "display": "Dog" + } + ] + } + }, + { + "url": "breed", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "58108001", + "display": "Golden retriever" + }, + { + "system": "http://hl7.org/fhir/animal-breed", + "code": "gret", + "display": "Golden Retriever" + } + ] + } + }, + { + "url": "genderStatus", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/animal-genderstatus", + "code": "neutered" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Practitioner.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Practitioner.json new file mode 100644 index 000000000..c981e788a --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Practitioner.json @@ -0,0 +1,62 @@ +{ + "resourceType": "Practitioner", + "id": "f001", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: f001

identifier: 938273695 (OFFICIAL), 129IDH4OP733 (USUAL)

name: Eric van den broek (OFFICIAL)

telecom: ph: 0205568263(WORK), E.M.vandenbroek@bmc.nl(WORK), fax: 0205664440(WORK)

address: Galapagosweg 91 Den Burg 9105 PZ NLD (WORK)

gender: male

birthDate: 07/12/1975

" + }, + "identifier": [ + { + "use": "official", + "system": "urn:oid:2.16.528.1.1007.3.1", + "value": "938273695" + }, + { + "use": "usual", + "system": "urn:oid:2.16.840.1.113883.2.4.6.3", + "value": "129IDH4OP733" + } + ], + "name": [ + { + "use": "official", + "family": "van den broek", + "given": [ + "Eric" + ], + "suffix": [ + "MD" + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "0205568263", + "use": "work" + }, + { + "system": "email", + "value": "E.M.vandenbroek@bmc.nl", + "use": "work" + }, + { + "system": "fax", + "value": "0205664440", + "use": "work" + } + ], + "address": [ + { + "use": "work", + "line": [ + "Galapagosweg 91" + ], + "city": "Den Burg", + "postalCode": "9105 PZ", + "country": "NLD" + } + ], + "gender": "male", + "birthDate": "1975-12-07" +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Procedure.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Procedure.json new file mode 100644 index 000000000..9888e7e7f --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Procedure.json @@ -0,0 +1,65 @@ +{ + "resourceType": "Procedure", + "id": "ambulation", + "text": { + "status": "generated", + "div": "
Ambulation procedure was not done
" + }, + "identifier": [ + { + "value": "12345" + } + ], + "basedOn": [ + { + "reference": "CarePlan/preg", + "display": "Maternity care plan" + } + ], + "status": "stopped", + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "62013009", + "display": "Ambulating patient (procedure)" + } + ], + "text": "Ambulation" + }, + "subject": { + "reference": "Patient/example" + }, + "performer": [ + { + "actor": { + "reference": "Practitioner/f204", + "display": "Carla Espinosa" + }, + "onBehalfOf": { + "reference": "Organization/f001", + "display": "University Medical Hospital" + } + } + ], + "location": { + "reference": "Location/1", + "display": "Burgers University Medical Center, South Wing, second floor" + }, + "reasonReference": [ + { + "reference": "Observation/blood-pressure", + "display": "Blood Pressure" + } + ], + "statusReason": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "398254007", + "display": " Pre-eclampsia (disorder)" + } + ], + "text": "Pre-eclampsia" + } +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Provenance.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Provenance.json new file mode 100644 index 000000000..50eb89334 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Provenance.json @@ -0,0 +1,74 @@ +{ + "resourceType": "Provenance", + "id": "signature", + "text": { + "status": "generated", + "div": "
procedure record authored on 27-June 2015 by Harold Hippocrates, MD Content extracted from Referral received 26-June
" + }, + "target": [ + { + "reference": "DocumentReference/example" + } + ], + "recorded": "2015-08-27T06:39:24+08:00", + "reason": [ + [ + { + "coding": { + "system": "http://hl7.org/fhir/v3/ActReason", + "code": "TREAT", + "display": "treatment" + } + } + ] + ], + "activity": [ + { + "coding": { + "system": "http://hl7.org/fhir/v3/DocumentCompletion", + "code": "AU", + "display": "authenticated" + } + } + ], + "agent": [ + { + "role": [ + { + "coding": [ + { + "system": "http://www.hl7.org/fhir/contractsignertypecodes", + "code": "VERF" + } + ] + } + ], + "who": { + "reference": "mailto://hhd@ssa.gov", + "extension": [ + { + "url": "http://hl7.org/fhir/r3/StructureDefinition/BaseType", + "valueString": "uri" + } + ] + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.5", + "display": "Verification Signature" + } + ], + "when": "2015-08-27T06:39:24+08:00", + "who": { + "reference": "Practitioner/xcda-author" + }, + "sigFormat": "application/signature+xml", + "data": "Li4u" + } + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Questionnaire.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Questionnaire.json new file mode 100644 index 000000000..4c499da0d --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Questionnaire.json @@ -0,0 +1,429 @@ +{ + "resourceType": "Questionnaire", + "id": "54127-6", + "meta": { + "profile": [ + "http://hl7.org/fhir/us/sdc/StructureDefinition/sdc-questionnaire" + ] + }, + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: 54127-6

meta:

contained: ,

url: http://hl7.org/fhir/us/sdc/Questionnaire/54127-6

identifier: 54127-6

title: US Surgeon General - Family Health Portrait

status: active

experimental: true

date: 01/01/2015

publisher: Regenstrief Institute, Inc and the LOINC Committee

description: This represents an implementation of the "US Surgeon General family health portrait" form found at https://lforms-demo.nlm.nih.gov

purpose: Captures basic family history information

approvalDate: 31/10/2015

lastReviewDate: 15/03/2017

useContext:

jurisdiction: United States (Details : {urn:iso:std:iso:3166 code 'US' = 'United States)

contact:

copyright: (c) 2015 Regenstrief Institute

code: US Surgeon General family health portrait [USSG-FHT] (Details: LOINC code 54127-6 = 'US Surgeon General family health portrait [USSG-FHT]', stated as 'US Surgeon General family health portrait [USSG-FHT]')

subjectType: Patient

item

linkId: 0

type: group

Items

-
*
*
*
*

item

linkId: 1

definition: http://loinc.org/fhir/DataElement/54126-8

text: Your health information

type: group

required: true

Items

-
*
*

item

linkId: 2

definition: http://loinc.org/fhir/DataElement/54114-4

text: Family member health information

type: group

repeats: true

Items

-
*
" + }, + "url": "http://hl7.org/fhir/us/sdc/Questionnaire/54127-6", + "identifier": [ + { + "system": "http://example.org/panel-id", + "value": "54127-6" + } + ], + "title": "US Surgeon General - Family Health Portrait", + "status": "active", + "experimental": true, + "date": "2015", + "publisher": "Regenstrief Institute, Inc and the LOINC Committee", + "description": "This represents an implementation of the \"US Surgeon General family health portrait\" form found at https://lforms-demo.nlm.nih.gov", + "purpose": "Captures basic family history information", + "approvalDate": "2015-10-31", + "lastReviewDate": "2017-03-15", + "useContext": [ + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "species" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "337915000", + "display": "Homo sapiens" + } + ] + } + } + ], + "jurisdiction": [ + { + "coding": [ + { + "system": "urn:iso:std:iso:3166", + "code": "US" + } + ] + } + ], + "contact": [ + { + "telecom": [ + { + "system": "url", + "value": "http://loinc.org" + } + ] + } + ], + "copyright": "(c) 2015 Regenstrief Institute", + "code": [ + { + "system": "http://loinc.org", + "code": "54127-6", + "display": "US Surgeon General family health portrait [USSG-FHT]" + } + ], + "subjectType": [ + "Patient" + ], + "item": [ + { + "linkId": "0", + "type": "group", + "item": [ + { + "linkId": "0.1", + "text": "Date Done", + "type": "date" + }, + { + "linkId": "0.2", + "text": "Time Done", + "type": "time" + }, + { + "linkId": "0.3", + "text": "Where Done", + "type": "string" + }, + { + "linkId": "0.4", + "text": "Comment", + "type": "string" + } + ] + }, + { + "linkId": "1", + "definition": "http://loinc.org/fhir/DataElement/54126-8", + "text": "Your health information", + "type": "group", + "required": true, + "item": [ + { + "linkId": "1.1", + "type": "group", + "item": [ + { + "linkId": "1.1.1", + "definition": "http://loinc.org/fhir/DataElement/54125-0", + "text": "Name", + "type": "string", + "maxLength": 200 + }, + { + "linkId": "1.1.2", + "definition": "http://loinc.org/fhir/DataElement/54131-8", + "text": "Gender", + "type": "choice", + "required": true, + "item": [ + { + "linkId": "1.1.2.1.1", + "text": "Please specify", + "type": "string", + "required": true + } + ], + "answerValueSet": "http://hl7.org/fhir/us/sdc/ValueSet/LL1-9" + }, + { + "linkId": "1.1.3", + "definition": "http://loinc.org/fhir/DataElement/21112-8", + "text": "Date of Birth", + "type": "date" + }, + { + "linkId": "1.1.4", + "definition": "http://loinc.org/fhir/DataElement/54132-6", + "text": "Were you born a twin?", + "type": "choice", + "answerValueSet": "http://hl7.org/fhir/us/sdc/ValueSet/LL623-0", + "initial": [ + { + "valueBoolean": null, + "valueDecimal": null, + "valueInteger": null, + "valueCoding": { + "system": "http://loinc.org", + "code": "LA32-8", + "display": "No" + } + } + ] + }, + { + "linkId": "1.1.5", + "definition": "http://loinc.org/fhir/DataElement/54128-4", + "text": "Were you adopted?", + "type": "choice", + "answerValueSet": "http://hl7.org/fhir/us/sdc/ValueSet/LL361-7" + }, + { + "linkId": "1.1.6", + "definition": "http://loinc.org/fhir/DataElement/54135-9", + "text": "Are your parents related to each other in any way other than marriage?", + "type": "choice", + "answerValueSet": "http://hl7.org/fhir/us/sdc/ValueSet/LL361-7" + }, + { + "linkId": "1.1.7", + "definition": "http://loinc.org/fhir/DataElement/8302-2", + "text": "Height", + "type": "decimal", + "required": true, + "item": [ + { + "linkId": "1.1.7.1.1", + "text": "Units", + "type": "choice", + "answerValueSet": "#length" + } + ] + }, + { + "linkId": "1.1.8", + "definition": "http://loinc.org/fhir/DataElement/29463-7", + "text": "Weight", + "type": "decimal", + "item": [ + { + "linkId": "1.1.8.1.1", + "text": "Units", + "type": "choice", + "answerValueSet": "#weight" + } + ] + }, + { + "linkId": "1.1.9", + "definition": "http://loinc.org/fhir/DataElement/39156-5", + "text": "Body mass index (BMI) [Ratio]", + "type": "decimal", + "readOnly": true + }, + { + "linkId": "1.1.10", + "definition": "http://loinc.org/fhir/DataElement/54134-2", + "text": "Race", + "type": "choice", + "required": true, + "answerValueSet": "http://hl7.org/fhir/us/sdc/ValueSet/LL629-7" + }, + { + "linkId": "1.1.11", + "definition": "http://loinc.org/fhir/DataElement/54133-4", + "text": "Ethnicity", + "type": "choice", + "repeats": true, + "answerValueSet": "http://hl7.org/fhir/us/sdc/ValueSet/LL628-9" + } + ] + }, + { + "linkId": "1.2", + "definition": "http://loinc.org/fhir/DataElement/54137-5", + "text": "Your diseases history", + "type": "group", + "repeats": true, + "item": [ + { + "linkId": "1.2.1", + "definition": "http://loinc.org/fhir/DataElement/54140-9", + "text": "Disease or Condition", + "type": "choice", + "answerValueSet": "http://hl7.org/fhir/us/sdc/ValueSet/LL626-3" + }, + { + "linkId": "1.2.2", + "definition": "http://loinc.org/fhir/DataElement/54130-0", + "text": "Age at Diagnosis", + "type": "choice", + "answerValueSet": "http://hl7.org/fhir/us/sdc/ValueSet/LL619-8" + } + ] + } + ] + }, + { + "linkId": "2", + "definition": "http://loinc.org/fhir/DataElement/54114-4", + "text": "Family member health information", + "type": "group", + "repeats": true, + "item": [ + { + "linkId": "2.1", + "type": "group", + "item": [ + { + "linkId": "2.1.1", + "type": "group", + "item": [ + { + "linkId": "2.1.1.1", + "definition": "http://loinc.org/fhir/DataElement/54136-7", + "text": "Relationship to you", + "type": "choice", + "answerValueSet": "http://hl7.org/fhir/us/sdc/ValueSet/LL621-4" + }, + { + "linkId": "2.1.1.2", + "definition": "http://loinc.org/fhir/DataElement/54138-3", + "text": "Name", + "type": "string" + }, + { + "linkId": "2.1.1.3", + "definition": "http://loinc.org/fhir/DataElement/54123-5", + "text": "Gender", + "type": "choice", + "item": [ + { + "linkId": "2.1.1.3.1.1", + "text": "Please specify", + "type": "string", + "required": true + } + ], + "answerValueSet": "http://hl7.org/fhir/us/sdc/ValueSet/LL1-9" + }, + { + "linkId": "2.1.1.4", + "definition": "http://loinc.org/fhir/DataElement/54139-1", + "text": "Living?", + "type": "choice", + "item": [ + { + "linkId": "2.1.1.4.1", + "type": "group", + "item": [ + { + "linkId": "2.1.1.4.1.1", + "definition": "http://loinc.org/fhir/DataElement/54112-8", + "text": "Cause of Death", + "type": "choice", + "item": [ + { + "linkId": "2.1.1.4.1.1.1", + "text": "Please specify", + "type": "string" + } + ], + "answerValueSet": "http://hl7.org/fhir/us/sdc/ValueSet/LL627-1" + }, + { + "linkId": "2.1.1.4.1.2", + "definition": "http://loinc.org/fhir/DataElement/54113-6", + "text": "Age at Death", + "type": "choice", + "answerValueSet": "http://hl7.org/fhir/us/sdc/ValueSet/LL619-8" + } + ] + }, + { + "linkId": "2.1.1.4.2", + "type": "group", + "item": [ + { + "linkId": "2.1.1.4.2.1", + "definition": "http://loinc.org/fhir/DataElement/54124-3", + "text": "Date of Birth", + "type": "date" + }, + { + "linkId": "2.1.1.4.2.2", + "definition": "http://loinc.org/fhir/DataElement/54141-7", + "text": "Age", + "type": "decimal" + } + ] + } + ], + "answerValueSet": "http://hl7.org/fhir/us/sdc/ValueSet/LL361-7" + }, + { + "linkId": "2.1.1.5", + "definition": "http://loinc.org/fhir/DataElement/54121-9", + "text": "Was this person born a twin?", + "type": "choice", + "answerValueSet": "http://hl7.org/fhir/us/sdc/ValueSet/LL623-0" + }, + { + "linkId": "2.1.1.6", + "definition": "http://loinc.org/fhir/DataElement/54122-7", + "text": "Was this person adopted?", + "type": "choice", + "answerValueSet": "http://hl7.org/fhir/us/sdc/ValueSet/LL623-0" + }, + { + "linkId": "2.1.1.7", + "definition": "http://loinc.org/fhir/DataElement/54119-3", + "text": "Race", + "type": "choice", + "repeats": true, + "answerValueSet": "http://hl7.org/fhir/us/sdc/ValueSet/LL629-7" + }, + { + "linkId": "2.1.1.8", + "definition": "http://loinc.org/fhir/DataElement/54120-1", + "text": "Ethnicity", + "type": "choice", + "repeats": true, + "answerValueSet": "http://hl7.org/fhir/us/sdc/ValueSet/LL628-9" + } + ] + }, + { + "linkId": "2.1.2", + "definition": "http://loinc.org/fhir/DataElement/54117-7", + "text": "This family member's history of disease", + "type": "group", + "repeats": true, + "item": [ + { + "linkId": "2.1.2.1", + "definition": "http://loinc.org/fhir/DataElement/54116-9", + "text": "Disease or Condition", + "type": "choice", + "required": true, + "answerValueSet": "http://hl7.org/fhir/us/sdc/ValueSet/LL626-3" + }, + { + "linkId": "2.1.2.2", + "definition": "http://loinc.org/fhir/DataElement/54115-1", + "text": "Age at Diagnosis", + "type": "choice", + "answerValueSet": "http://hl7.org/fhir/us/sdc/ValueSet/LL619-8" + }, + { + "linkId": "2.1.2.3", + "text": "Mock-up item: Height", + "type": "decimal" + }, + { + "linkId": "2.1.2.4", + "text": "Mock-up item: Weight", + "type": "decimal" + }, + { + "linkId": "2.1.2.5", + "text": "Mock-up item: BMI", + "type": "decimal" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/QuestionnaireResponse.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/QuestionnaireResponse.json new file mode 100644 index 000000000..d2b0d46ab --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/QuestionnaireResponse.json @@ -0,0 +1,92 @@ +{ + "resourceType": "QuestionnaireResponse", + "id": "3141", + "text": { + "status": "generated", + "div": "
\n
\n            Comorbidity? YES\n              Cardial Comorbidity? YES\n                Angina? YES\n                MI? NO\n              Vascular Comorbidity?\n                (no answers)\n              ...\n            Histopathology\n              Abdominal\n                pT category: 1a\n              ...\n          
\n
" + }, + "identifier": { + "system": "http://example.org/fhir/NamingSystem/questionnaire-ids", + "value": "Q12349876" + }, + "basedOn": [ + { + "reference": "#order" + } + ], + "status": "completed", + "subject": { + "reference": "#patsub" + }, + "authored": "2013-02-20T03:15:00+08:00", + "author": { + "reference": "#questauth" + }, + "item": [ + { + "linkId": "1", + "item": [ + { + "linkId": "1.1", + "answer": [ + { + "valueCoding": { + "system": "http://cancer.questionnaire.org/system/code/yesno", + "code": "1", + "display": "Yes" + }, + "item": [ + { + "linkId": "1.1.1", + "item": [ + { + "linkId": "1.1.1.1", + "answer": [ + { + "valueCoding": { + "system": "http://cancer.questionnaire.org/system/code/yesno", + "code": "1" + } + } + ] + }, + { + "linkId": "1.1.1.2", + "answer": [ + { + "valueCoding": { + "system": "http://cancer.questionnaire.org/system/code/yesno", + "code": "1" + } + } + ] + }, + { + "linkId": "1.1.1.3", + "answer": [ + { + "valueCoding": { + "system": "http://cancer.questionnaire.org/system/code/yesno", + "code": "0" + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ], + "partOf": [ + { + "reference": "Procedure/f201" + } + ], + "encounter": { + "reference": "Encounter/example" + } +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Schedule.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Schedule.json new file mode 100644 index 000000000..27b6a409e --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Schedule.json @@ -0,0 +1,57 @@ +{ + "resourceType": "Schedule", + "id": "example", + "text": { + "status": "generated", + "div": "
\n Burgers UMC, South Wing, second floor Physiotherapy Schedule\n
" + }, + "identifier": [ + { + "use": "usual", + "system": "http://example.org/scheduleid", + "value": "45" + } + ], + "active": true, + "serviceCategory": [ + { + "coding": [ + { + "code": "17", + "display": "General Practice" + } + ] + } + ], + "serviceType": [ + { + "coding": [ + { + "code": "57", + "display": "Immunization" + } + ] + } + ], + "specialty": [ + { + "coding": [ + { + "code": "408480009", + "display": "Clinical immunology" + } + ] + } + ], + "actor": [ + { + "reference": "Location/1", + "display": "Burgers UMC, South Wing, second floor" + } + ], + "planningHorizon": { + "start": "2013-12-25T09:15:00Z", + "end": "2013-12-25T09:30:00Z" + }, + "comment": "The slots attached to this schedule should be specialized to cover immunizations within the clinic" +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/SearchParameter.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/SearchParameter.json new file mode 100644 index 000000000..d0ff5e9ff --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/SearchParameter.json @@ -0,0 +1,67 @@ +{ + "resourceType": "SearchParameter", + "id": "example", + "text": { + "status": "generated", + "div": "

Generated Narrative with Details

id: example

url: http://hl7.org/fhir/SearchParameter/example

version: 1

name: ID-SEARCH-PARAMETER

status: draft

experimental: true

date: 23/10/2013

publisher: Health Level Seven International (FHIR Infrastructure)

contact:

useContext:

jurisdiction: United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States', given as 'United States of America (the)'})

purpose: Need to search by identifier for various infrastructural cases - mainly retrieving packages, and matching as part of a chain

code: _id

base: Resource

type: token

derivedFrom: http://hl7.org/fhir/SearchParameter/Resource-id

description: Search by resource identifier - e.g. same as the read interaction, but can return included resources

expression: id

xpath: f:*/f:id

xpathUsage: normal

comparator: eq

" + }, + "url": "http://hl7.org/fhir/SearchParameter/example", + "version": "1", + "name": "ID-SEARCH-PARAMETER", + "status": "draft", + "experimental": true, + "date": "2013-10-23", + "publisher": "Health Level Seven International (FHIR Infrastructure)", + "contact": [ + { + "name": "[string]", + "telecom": [ + { + "system": "url", + "value": "http://hl7.org/fhir" + } + ] + } + ], + "useContext": [ + { + "code": { + "system": "http://hl7.org/fhir/usage-context-type", + "code": "focus" + }, + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/variant-state", + "code": "positive" + } + ] + } + } + ], + "jurisdiction": [ + { + "coding": [ + { + "system": "urn:iso:std:iso:3166", + "code": "US", + "display": "United States of America (the)" + } + ] + } + ], + "purpose": "Need to search by identifier for various infrastructural cases - mainly retrieving packages, and matching as part of a chain", + "code": "_id", + "base": [ + "Resource" + ], + "type": "token", + "derivedFrom": "http://hl7.org/fhir/SearchParameter/Resource-id", + "description": "Search by resource identifier - e.g. same as the read interaction, but can return included resources", + "expression": "id", + "xpath": "f:*/f:id", + "xpathUsage": "normal", + "comparator": [ + "eq" + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Slot.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Slot.json new file mode 100644 index 000000000..db005cee9 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Slot.json @@ -0,0 +1,54 @@ +{ + "resourceType": "Slot", + "id": "example", + "text": { + "status": "generated", + "div": "
\n\t\t\t25 Dec 2013 9:15am - 9:30am: Busy Physiotherapy\n\t\t
" + }, + "serviceCategory": [ + { + "coding": [ + { + "code": "17", + "display": "General Practice" + } + ] + } + ], + "serviceType": [ + { + "coding": [ + { + "code": "57", + "display": "Immunization" + } + ] + } + ], + "specialty": [ + { + "coding": [ + { + "code": "408480009", + "display": "Clinical immunology" + } + ] + } + ], + "appointmentType": { + "coding": [ + { + "system": "http://hl7.org/fhir/v2/0276", + "code": "WALKIN", + "display": "A previously unscheduled walk-in visit" + } + ] + }, + "schedule": { + "reference": "Schedule/example" + }, + "status": "free", + "start": "2013-12-25T09:15:00Z", + "end": "2013-12-25T09:30:00Z", + "comment": "Assessments should be performed before requesting appointments in this slot." +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/StructureDefinition.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/StructureDefinition.json new file mode 100644 index 000000000..6e54149ef --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/StructureDefinition.json @@ -0,0 +1,210 @@ +{ + "resourceType": "StructureDefinition", + "id": "Element", + "meta": { + "lastUpdated": "2019-10-24T08:53:00+08:00" + }, + "text": { + "status": "generated", + "div": "
!-- Snipped for Brevity -->
" + }, + "url": "http://hl7.org/fhir/StructureDefinition/Element", + "name": "Element", + "status": "draft", + "date": "2019-10-24T08:53:00+08:00", + "publisher": "HL7 FHIR Standard", + "contact": [ + { + "telecom": [ + { + "system": "url", + "value": "http://hl7.org/fhir" + } + ] + } + ], + "description": "Base StructureDefinition for Element Type", + "fhirVersion": "4.0.1", + "mapping": [ + { + "identity": "rim", + "uri": "http://hl7.org/v3", + "name": "RIM Mapping" + } + ], + "kind": "complex-type", + "abstract": true, + "type": "Element", + "snapshot": { + "element": [ + { + "id": "Element", + "path": "Element", + "short": "Base for all elements", + "definition": "Base definition for all elements in a resource.", + "min": 0, + "max": "*", + "condition": [ + "ele-1" + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() | (children().count() > id.count())", + "xpath": "@value|f:*|h:div" + } + ], + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Element.id", + "path": "Element.id", + "representation": [ + "xmlAttr" + ], + "short": "xml:id (or equivalent in JSON)", + "definition": "unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + "min": 0, + "max": "1", + "type": [ + { + "code": "string" + } + ], + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Element.extension", + "path": "Element.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, + "short": "Additional Content defined by implementations", + "definition": "May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "alias": [ + "extensions", + "user content" + ], + "min": 0, + "max": "*", + "type": [ + { + "code": "Extension" + } + ], + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + } + ] + }, + "differential": { + "element": [ + { + "id": "Element", + "path": "Element", + "short": "Base for all elements", + "definition": "Base definition for all elements in a resource.", + "min": 0, + "max": "*", + "condition": [ + "ele-1" + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() | (children().count() > id.count())", + "xpath": "@value|f:*|h:div" + } + ], + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Element.id", + "path": "Element.id", + "representation": [ + "xmlAttr" + ], + "short": "xml:id (or equivalent in JSON)", + "definition": "unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + "min": 0, + "max": "1", + "type": [ + { + "code": "string" + } + ], + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Element.extension", + "path": "Element.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, + "short": "Additional Content defined by implementations", + "definition": "May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "alias": [ + "extensions", + "user content" + ], + "min": 0, + "max": "*", + "type": [ + { + "code": "Extension" + } + ], + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Subscription.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Subscription.json new file mode 100644 index 000000000..46867b917 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/Subscription.json @@ -0,0 +1,27 @@ +{ + "resourceType": "Subscription", + "id": "example-error", + "text": { + "status": "generated", + "div": "
[Put rendering here]
" + }, + "status": "error", + "contact": [ + { + "system": "phone", + "value": "ext 4123" + } + ], + "end": "2021-01-01T00:00:00Z", + "reason": "Monitor new neonatal function", + "criteria": "Observation?code=http://loinc.org|1975-2", + "error": "Socket Error 10060 - can't connect to host", + "channel": { + "type": "rest-hook", + "endpoint": "https://biliwatch.com/customers/mount-auburn-miu/on-result", + "payload": "application/fhir+json", + "header": [ + "Authorization: Bearer secret-token-abc-123" + ] + } +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/ValueSet.json b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/ValueSet.json new file mode 100644 index 000000000..d7eecb815 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.FunctionalTests/TestData/Expected/Stu3ToR4/ValueSet.json @@ -0,0 +1,132 @@ +{ + "resourceType": "ValueSet", + "id": "example-expansion", + "meta": { + "profile": [ + "http://hl7.org/fhir/StructureDefinition/shareablevalueset" + ] + }, + "text": { + "status": "generated", + "div": "
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
http://loinc.org14647-2Cholesterol [Moles/volume] in Serum or Plasma
\n\t\t\t\t\t\tAdditional Cholesterol codes\n\t\t\t\t\t
http://loinc.org2093-3Cholesterol [Mass/volume] in Serum or Plasma
http://loinc.org48620-9Cholesterol [Mass/volume] in Serum or Plasma ultracentrifugate
http://loinc.org9342-7Cholesterol [Percentile]
\n\t\t\t\t\t\tCholesterol Ratios\n\t\t\t\t\t
http://loinc.org2096-6Cholesterol/Triglyceride [Mass Ratio] in Serum or Plasma
http://loinc.org35200-5Cholesterol/Triglyceride [Mass Ratio] in Serum or Plasma
http://loinc.org48089-7Cholesterol/Apolipoprotein B [Molar ratio] in Serum or Plasma
http://loinc.org55838-7Cholesterol/Phospholipid [Molar ratio] in Serum or Plasma
\n\t\t
" + }, + "url": "http://hl7.org/fhir/ValueSet/example-expansion", + "version": "20150622", + "name": "LOINC Codes for Cholesterol in Serum/Plasma", + "status": "draft", + "experimental": true, + "date": "2015-06-22", + "publisher": "FHIR Project team", + "contact": [ + { + "telecom": [ + { + "system": "url", + "value": "http://hl7.org/fhir" + } + ] + } + ], + "description": "This is an example value set that includes all the LOINC codes for serum/plasma cholesterol from v2.36.", + "copyright": "This content from LOINC® is copyright © 1995 Regenstrief Institute, Inc. and the LOINC Committee, and available at no cost under the license at http://loinc.org/terms-of-use.", + "compose": { + "include": [ + { + "system": "http://loinc.org", + "filter": [ + { + "property": "parent", + "op": "=", + "value": "LP43571-6" + } + ] + } + ] + }, + "expansion": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-expansionSource", + "valueUri": "http://hl7.org/fhir/ValueSet/example-extensional" + } + ], + "identifier": "urn:uuid:42316ff8-2714-4680-9980-f37a6d1a71bc", + "timestamp": "2015-06-22T13:56:07Z", + "total": 8, + "offset": 0, + "parameter": [ + { + "name": "version", + "valueString": "2.50" + } + ], + "contains": [ + { + "system": "http://loinc.org", + "version": "2.50", + "code": "14647-2", + "display": "Cholesterol [Moles/volume] in Serum or Plasma" + }, + { + "abstract": true, + "display": "Cholesterol codes", + "contains": [ + { + "system": "http://loinc.org", + "version": "2.50", + "code": "2093-3", + "display": "Cholesterol [Mass/volume] in Serum or Plasma" + }, + { + "system": "http://loinc.org", + "version": "2.50", + "code": "48620-9", + "display": "Cholesterol [Mass/volume] in Serum or Plasma ultracentrifugate" + }, + { + "system": "http://loinc.org", + "version": "2.50", + "code": "9342-7", + "display": "Cholesterol [Percentile]" + } + ] + }, + { + "abstract": true, + "display": "Cholesterol Ratios", + "contains": [ + { + "system": "http://loinc.org", + "version": "2.50", + "code": "2096-6", + "display": "Cholesterol/Triglyceride [Mass Ratio] in Serum or Plasma" + }, + { + "system": "http://loinc.org", + "version": "2.50", + "code": "35200-5", + "display": "Cholesterol/Triglyceride [Mass Ratio] in Serum or Plasma" + }, + { + "system": "http://loinc.org", + "version": "2.50", + "code": "48089-7", + "display": "Cholesterol/Apolipoprotein B [Molar ratio] in Serum or Plasma" + }, + { + "system": "http://loinc.org", + "version": "2.50", + "code": "55838-7", + "display": "Cholesterol/Phospholipid [Molar ratio] in Serum or Plasma" + } + ] + } + ] + }, + "extension": [ + { + "url": "http://hl7.org/fhir/r3/StructureDefinition/extension-ValueSet.extensible", + "valueBoolean": "true" + } + ] +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.Tool/ConverterLogicHandler.cs b/src/Microsoft.Health.Fhir.Liquid.Converter.Tool/ConverterLogicHandler.cs index cf4a718ba..c1af3934d 100644 --- a/src/Microsoft.Health.Fhir.Liquid.Converter.Tool/ConverterLogicHandler.cs +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.Tool/ConverterLogicHandler.cs @@ -99,19 +99,14 @@ private static IFhirConverter CreateDataProcessor(DataType dataType) DataType.Hl7v2 => new Hl7v2Processor(), DataType.Ccda => new CcdaProcessor(), DataType.Json => new JsonProcessor(), + DataType.Fhir => new FhirProcessor(), _ => throw new NotImplementedException($"The conversion from data type {dataType} to FHIR is not supported") }; } private static ITemplateProvider CreateTemplateProvider(DataType dataType, string templateDirectory) { - return dataType switch - { - DataType.Hl7v2 => new TemplateProvider(templateDirectory, DataType.Hl7v2), - DataType.Ccda => new TemplateProvider(templateDirectory, DataType.Ccda), - DataType.Json => new TemplateProvider(templateDirectory, DataType.Json), - _ => throw new NotImplementedException($"The conversion from data type {dataType} to FHIR is not supported") - }; + return new TemplateProvider(templateDirectory, dataType); } private static TraceInfo CreateTraceInfo(DataType dataType, bool isTraceInfo) @@ -127,6 +122,7 @@ private static List GetInputFiles(DataType dataType, string inputDataFol DataType.Ccda => Directory.EnumerateFiles(inputDataFolder, "*.*", SearchOption.AllDirectories) .Where(x => CcdaExtensions.Contains(Path.GetExtension(x).ToLower())).ToList(), DataType.Json => Directory.EnumerateFiles(inputDataFolder, "*.json", SearchOption.AllDirectories).ToList(), + DataType.Fhir => Directory.EnumerateFiles(inputDataFolder, "*.json", SearchOption.AllDirectories).ToList(), _ => new List(), }; } diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/DotLiquids/MergeDiffTests.cs b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/DotLiquids/MergeDiffTests.cs new file mode 100644 index 000000000..acf0dbdda --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/DotLiquids/MergeDiffTests.cs @@ -0,0 +1,154 @@ +// ------------------------------------------------------------------------------------------------- +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License (MIT). See LICENSE in the repo root for license information. +// ------------------------------------------------------------------------------------------------- + +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using DotLiquid; +using Microsoft.Health.Fhir.Liquid.Converter.Exceptions; +using Microsoft.Health.Fhir.Liquid.Converter.Models; +using Microsoft.Health.Fhir.Liquid.Converter.Parsers; +using Microsoft.Health.Fhir.Liquid.Converter.Utilities; +using Newtonsoft.Json.Linq; +using Xunit; + +namespace Microsoft.Health.Fhir.Liquid.Converter.UnitTests.DotLiquids +{ + public class MergeDiffTests + { + public const string TemplateName = "TemplateName"; + + public static IEnumerable GetValidMergeDiffTemplateContents() + { + yield return new object[] { File.ReadAllText(Path.Join(TestConstants.TestTemplateDirectory, @"ValidMergeDiffTemplates/ValidExample1.liquid")), File.ReadAllText(Path.Join(TestConstants.ExpectedDirectory, @"MergeDiffResults/ValidExample1.json")) }; + yield return new object[] { File.ReadAllText(Path.Join(TestConstants.TestTemplateDirectory, @"ValidMergeDiffTemplates/ValidExample2.liquid")), File.ReadAllText(Path.Join(TestConstants.ExpectedDirectory, @"MergeDiffResults/ValidExample2.json")) }; + yield return new object[] { File.ReadAllText(Path.Join(TestConstants.TestTemplateDirectory, @"ValidMergeDiffTemplates/ValidExample3.liquid")), File.ReadAllText(Path.Join(TestConstants.ExpectedDirectory, @"MergeDiffResults/ValidExample3.json")) }; + yield return new object[] { File.ReadAllText(Path.Join(TestConstants.TestTemplateDirectory, @"ValidMergeDiffTemplates/EmptyDiffContent.liquid")), File.ReadAllText(Path.Join(TestConstants.ExpectedDirectory, @"MergeDiffResults/EmptyDiffContent.json")) }; + yield return new object[] { File.ReadAllText(Path.Join(TestConstants.TestTemplateDirectory, @"ValidMergeDiffTemplates/EmptyDiffContent2.liquid")), File.ReadAllText(Path.Join(TestConstants.ExpectedDirectory, @"MergeDiffResults/EmptyDiffContent.json")) }; + } + + public static IEnumerable GetInvalidMergeDiffBlockContentTypes() + { + yield return new object[] { File.ReadAllText(Path.Join(TestConstants.TestTemplateDirectory, @"InvalidMergeDiffTemplates/InvalidDiffBlockString.liquid")) }; + yield return new object[] { File.ReadAllText(Path.Join(TestConstants.TestTemplateDirectory, @"InvalidMergeDiffTemplates/InvalidDiffBlockArray.liquid")) }; + yield return new object[] { File.ReadAllText(Path.Join(TestConstants.TestTemplateDirectory, @"InvalidMergeDiffTemplates/InvalidDiffBlockInvalidJson.liquid")) }; + } + + public static IEnumerable GetInvalidMergeDiffTemplateWithErrorSyntax() + { + yield return new object[] { File.ReadAllText(Path.Join(TestConstants.TestTemplateDirectory, @"InvalidMergeDiffTemplates/ErrorSyntax.liquid")) }; + yield return new object[] { File.ReadAllText(Path.Join(TestConstants.TestTemplateDirectory, @"InvalidMergeDiffTemplates/ErrorSyntax2.liquid")) }; + } + + [Theory] + [MemberData(nameof(GetValidMergeDiffTemplateContents))] + public void GivenValidMergeDiffTemplateContent_WhenParseAndRender_CorrectResultShouldBeReturned(string templateContent, string expectedResult) + { + // Template should be parsed correctly + var template = TemplateUtility.ParseTemplate(TemplateName, templateContent); + Assert.True(template.Root.NodeList.Count > 0); + + // Template should be rendered correctly + var templateFolder = Path.Join(TestConstants.TestTemplateDirectory, @"ValidMergeDiffTemplates"); + var parser = new JsonDataParser(); + var inputContent = "{\"id\": \"0\",\"valueReference\" : \"testReference\",\"resourceType\" : \"oldType\",\"extension\":{\"test\" : \"test\"}}"; + + var templateProvider = new TemplateProvider(templateFolder, DataType.Json); + var jsonData = parser.Parse(inputContent); + var dictionary = new Dictionary { { "msg", jsonData } }; + var context = new Context( + environments: new List { Hash.FromDictionary(dictionary) }, + outerScope: new Hash(), + registers: Hash.FromDictionary(new Dictionary() { { "file_system", templateProvider.GetTemplateFileSystem() } }), + errorsOutputMode: ErrorsOutputMode.Rethrow, + maxIterations: 0, + timeout: 0, + formatProvider: CultureInfo.InvariantCulture); + context.AddFilters(typeof(Filters)); + var result = template.Render(RenderParameters.FromContext(context, CultureInfo.InvariantCulture)); + var expectedObject = JObject.Parse(expectedResult); + var actualObject = JObject.Parse(result); + Assert.True(JToken.DeepEquals(expectedObject, actualObject)); + } + + [Theory] + [MemberData(nameof(GetInvalidMergeDiffBlockContentTypes))] + public void GivenInvalidDiffBlockContent_WhenParseAndRender_ExceptionsShouldBeThrown(string templateContent) + { + var template = TemplateUtility.ParseTemplate(TemplateName, templateContent); + + var templateFolder = Path.Join(TestConstants.TestTemplateDirectory, @"InvalidMergeDiffTemplates"); + var templateProvider = new TemplateProvider(templateFolder, DataType.Json); + var inputContent = "{\"id\": \"\\\"0\",\"resourceType\" : \"oldType\",\"extension\":{\"test\" : \"test\"}}"; + var parser = new JsonDataParser(); + var jsonData = parser.Parse(inputContent); + var dictionary = new Dictionary { { "msg", jsonData } }; + var context = new Context( + environments: new List { Hash.FromDictionary(dictionary) }, + outerScope: new Hash(), + registers: Hash.FromDictionary(new Dictionary() { { "file_system", templateProvider.GetTemplateFileSystem() } }), + errorsOutputMode: ErrorsOutputMode.Rethrow, + maxIterations: 0, + timeout: 0, + formatProvider: CultureInfo.InvariantCulture); + context.AddFilters(typeof(Filters)); + Assert.Throws(() => template.Render(RenderParameters.FromContext(context, CultureInfo.InvariantCulture))); + } + + [Fact] + public void GivenInvalidDiffBlockContentWithTooMuchRecursive_WhenParseAndRender_ExceptionsShouldBeThrown() + { + var templateContent = File.ReadAllText(Path.Join(TestConstants.TestTemplateDirectory, @"InvalidMergeDiffTemplates/RecursiveTooMuchTemplate.liquid")); + var template = TemplateUtility.ParseTemplate(TemplateName, templateContent); + + var templateFolder = Path.Join(TestConstants.TestTemplateDirectory, @"InvalidMergeDiffTemplates"); + var templateProvider = new TemplateProvider(templateFolder, DataType.Json); + var inputContent = "{\"id\": \"\\\"0\",\"resourceType\" : \"oldType\",\"extension\":{\"test\" : \"test\"}}"; + var parser = new JsonDataParser(); + var jsonData = parser.Parse(inputContent); + var dictionary = new Dictionary { { "msg", jsonData } }; + var context = new Context( + environments: new List { Hash.FromDictionary(dictionary) }, + outerScope: new Hash(), + registers: Hash.FromDictionary(new Dictionary() { { "file_system", templateProvider.GetTemplateFileSystem() } }), + errorsOutputMode: ErrorsOutputMode.Rethrow, + maxIterations: 0, + timeout: 0, + formatProvider: CultureInfo.InvariantCulture); + context.AddFilters(typeof(Filters)); + Assert.Throws(() => template.Render(RenderParameters.FromContext(context, CultureInfo.InvariantCulture))); + } + + [Theory] + [MemberData(nameof(GetInvalidMergeDiffTemplateWithErrorSyntax))] + public void GivenInvalidMergeDiffTemplateWithErrorSyntax_WhenParse_ExceptionsShouldBeThrown(string templateContent) + { + Assert.Throws(() => TemplateUtility.ParseTemplate(TemplateName, templateContent)); + } + + [Fact] + public void GivenValidDiffBlockContent_WhenInputIsInvalidJson_WhenParseAndRender_ExceptionsShouldBeThrown() + { + var templateContent = File.ReadAllText(Path.Join(TestConstants.TestTemplateDirectory, @"ValidMergeDiffTemplates/ValidExample2.liquid")); + var template = TemplateUtility.ParseTemplate(TemplateName, templateContent); + + var templateFolder = Path.Join(TestConstants.TestTemplateDirectory, @"ValidMergeDiffTemplates"); + var templateProvider = new TemplateProvider(templateFolder, DataType.Json); + + var data = new List() { "invalidJson" }; + var dictionary = new Dictionary { { "msg", data } }; + var context = new Context( + environments: new List { Hash.FromDictionary(dictionary) }, + outerScope: new Hash(), + registers: Hash.FromDictionary(new Dictionary() { { "file_system", templateProvider.GetTemplateFileSystem() } }), + errorsOutputMode: ErrorsOutputMode.Rethrow, + maxIterations: 0, + timeout: 0, + formatProvider: CultureInfo.InvariantCulture); + context.AddFilters(typeof(Filters)); + Assert.Throws(() => template.Render(RenderParameters.FromContext(context, CultureInfo.InvariantCulture))); + } + } +} diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/Filters/CollectionFiltersTest.cs b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/Filters/CollectionFiltersTest.cs index 505ecaf20..a2f11513d 100644 --- a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/Filters/CollectionFiltersTest.cs +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/Filters/CollectionFiltersTest.cs @@ -52,7 +52,7 @@ public void BatchRenderTests() 0, CultureInfo.InvariantCulture); var collection = new List { 1, 2, 3 }; - Assert.Equal("1 2 3 ", Filters.BatchRender(context, collection, "foo", "i")); + Assert.Equal("1 ,2 ,3 ,", Filters.BatchRender(context, collection, "foo", "i")); // Valid template file system but null collection Assert.Equal(string.Empty, Filters.BatchRender(context, null, "foo", "i")); diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/Microsoft.Health.Fhir.Liquid.Converter.UnitTests.csproj b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/Microsoft.Health.Fhir.Liquid.Converter.UnitTests.csproj index 070470b9b..286ab17ec 100644 --- a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/Microsoft.Health.Fhir.Liquid.Converter.UnitTests.csproj +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/Microsoft.Health.Fhir.Liquid.Converter.UnitTests.csproj @@ -30,7 +30,7 @@ - + PreserveNewest diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/Processors/ProcessorTests.cs b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/Processors/ProcessorTests.cs index 6bd35988e..5e2048102 100644 --- a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/Processors/ProcessorTests.cs +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/Processors/ProcessorTests.cs @@ -20,12 +20,14 @@ public class ProcessorTests private static readonly string _hl7v2TestData; private static readonly string _ccdaTestData; private static readonly string _jsonTestData; + private static readonly string _fhirStu3TestData; static ProcessorTests() { _hl7v2TestData = File.ReadAllText(Path.Join(TestConstants.SampleDataDirectory, "Hl7v2", "LRI_2.0-NG_CBC_Typ_Message.hl7")); _ccdaTestData = File.ReadAllText(Path.Join(TestConstants.SampleDataDirectory, "Ccda", "CCD.ccda")); _jsonTestData = File.ReadAllText(Path.Join(TestConstants.SampleDataDirectory, "Json", "ExamplePatient.json")); + _fhirStu3TestData = File.ReadAllText(Path.Join(TestConstants.SampleDataDirectory, "Stu3", "Patient.json")); } public static IEnumerable GetValidInputsWithTemplateDirectory() @@ -33,6 +35,7 @@ public static IEnumerable GetValidInputsWithTemplateDirectory() yield return new object[] { new Hl7v2Processor(), new TemplateProvider(TestConstants.Hl7v2TemplateDirectory, DataType.Hl7v2), _hl7v2TestData, "ORU_R01" }; yield return new object[] { new CcdaProcessor(), new TemplateProvider(TestConstants.CcdaTemplateDirectory, DataType.Ccda), _ccdaTestData, "CCD" }; yield return new object[] { new JsonProcessor(), new TemplateProvider(TestConstants.JsonTemplateDirectory, DataType.Json), _jsonTestData, "ExamplePatient" }; + yield return new object[] { new FhirProcessor(), new TemplateProvider(TestConstants.FhirStu3TemplateDirectory, DataType.Fhir), _fhirStu3TestData, "Patient" }; } public static IEnumerable GetValidInputsWithTemplateCollection() @@ -48,6 +51,7 @@ public static IEnumerable GetValidInputsWithTemplateCollection() yield return new object[] { new Hl7v2Processor(), new TemplateProvider(templateCollection), _hl7v2TestData }; yield return new object[] { new CcdaProcessor(), new TemplateProvider(templateCollection), _ccdaTestData }; yield return new object[] { new JsonProcessor(), new TemplateProvider(templateCollection), _jsonTestData }; + yield return new object[] { new FhirProcessor(), new TemplateProvider(templateCollection), _fhirStu3TestData }; } public static IEnumerable GetValidInputsWithProcessSettings() @@ -77,6 +81,11 @@ public static IEnumerable GetValidInputsWithProcessSettings() new JsonProcessor(null), new JsonProcessor(new ProcessorSettings()), new JsonProcessor(positiveTimeOutSettings), new JsonProcessor(negativeTimeOutSettings), new TemplateProvider(TestConstants.TestTemplateDirectory, DataType.Json), _jsonTestData, }; + yield return new object[] + { + new FhirProcessor(null), new FhirProcessor(new ProcessorSettings()), new FhirProcessor(positiveTimeOutSettings), new FhirProcessor(negativeTimeOutSettings), + new TemplateProvider(TestConstants.TestTemplateDirectory, DataType.Fhir), _fhirStu3TestData, + }; } public static IEnumerable GetValidInputsWithLargeForLoop() @@ -99,6 +108,40 @@ public static IEnumerable GetValidInputsWithLargeForLoop() new TemplateProvider(TestConstants.TestTemplateDirectory, DataType.Json), _jsonTestData, }; + yield return new object[] + { + new FhirProcessor(), + new TemplateProvider(TestConstants.TestTemplateDirectory, DataType.Fhir), + _fhirStu3TestData, + }; + } + + public static IEnumerable GetValidInputsWithNestingTooDeep() + { + yield return new object[] + { + new Hl7v2Processor(), + new TemplateProvider(TestConstants.TestTemplateDirectory, DataType.Hl7v2), + _hl7v2TestData, + }; + yield return new object[] + { + new CcdaProcessor(), + new TemplateProvider(TestConstants.TestTemplateDirectory, DataType.Ccda), + _ccdaTestData, + }; + yield return new object[] + { + new JsonProcessor(), + new TemplateProvider(TestConstants.TestTemplateDirectory, DataType.Json), + _jsonTestData, + }; + yield return new object[] + { + new FhirProcessor(), + new TemplateProvider(TestConstants.TestTemplateDirectory, DataType.Fhir), + _fhirStu3TestData, + }; } [Theory] @@ -191,5 +234,16 @@ public void GivenTemplateWithNestedForLoop_WhenConvert_CorrectResultShouldBeRetu var result = processor.Convert(data, "NestedForLoopTemplate", templateProvider); Assert.True(result.Length > 0); } + + [Theory] + [MemberData(nameof(GetValidInputsWithNestingTooDeep))] + public void GivenTemplateWithNestingTooDeep_WhenConvert_ExceptionShouldBeThrown(IFhirConverter processor, ITemplateProvider templateProvider, string data) + { + var exception = Assert.Throws(() => processor.Convert(data, "NestingTooDeepTemplate", templateProvider)); + Assert.Contains("Nesting too deep", exception.Message); + + exception = Assert.Throws(() => processor.Convert(data, "NestingTooDeepDiffTemplate", templateProvider)); + Assert.Contains("Nesting too deep", exception.Message); + } } } diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestConstants.cs b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestConstants.cs index cc70eab36..2e42869a0 100644 --- a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestConstants.cs +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestConstants.cs @@ -14,6 +14,8 @@ public static class TestConstants public static readonly string Hl7v2TemplateDirectory = Path.Join(TemplateDirectory, "Hl7v2"); public static readonly string CcdaTemplateDirectory = Path.Join(TemplateDirectory, "Ccda"); public static readonly string JsonTemplateDirectory = Path.Join(TemplateDirectory, "Json"); - public static readonly string TestTemplateDirectory = "TestTemplates"; + public static readonly string FhirStu3TemplateDirectory = Path.Join(TemplateDirectory, "Stu3ToR4"); + public static readonly string TestTemplateDirectory = "TestData/TestTemplates"; + public static readonly string ExpectedDirectory = "TestData/Expected/"; } } diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/Expected/MergeDiffResults/EmptyDiffContent.json b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/Expected/MergeDiffResults/EmptyDiffContent.json new file mode 100644 index 000000000..29d35c047 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/Expected/MergeDiffResults/EmptyDiffContent.json @@ -0,0 +1,8 @@ +{ + "id": "0", + "valueReference": "testReference", + "resourceType": "oldType", + "extension": { + "test": "test" + } +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/Expected/MergeDiffResults/ValidExample1.json b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/Expected/MergeDiffResults/ValidExample1.json new file mode 100644 index 000000000..188bd3a37 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/Expected/MergeDiffResults/ValidExample1.json @@ -0,0 +1,7 @@ +{ + "id": "1", + "valueReference" : "testReference", + "data" : "newData", + "resourceType" : "newType", + "extension" : "replace" +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/Expected/MergeDiffResults/ValidExample2.json b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/Expected/MergeDiffResults/ValidExample2.json new file mode 100644 index 000000000..e3b12edb5 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/Expected/MergeDiffResults/ValidExample2.json @@ -0,0 +1,12 @@ +{ + "id": "0", + "valueReference": "testReference", + "resourceType": "oldType", + "extension": { + "id": "1", + "valueReference": "testReference", + "data": "newData", + "resourceType": "newType", + "extension": "replace" + } +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/Expected/MergeDiffResults/ValidExample3.json b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/Expected/MergeDiffResults/ValidExample3.json new file mode 100644 index 000000000..e9c43ad7e --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/Expected/MergeDiffResults/ValidExample3.json @@ -0,0 +1,7 @@ +{ + "id": "1", + "data": "newData", + "resourceType": "newType", + "extension": "", + "valueReference": "" +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/InvalidMergeDiffTemplates/ErrorSyntax.liquid b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/InvalidMergeDiffTemplates/ErrorSyntax.liquid new file mode 100644 index 000000000..376f4e37a --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/InvalidMergeDiffTemplates/ErrorSyntax.liquid @@ -0,0 +1,8 @@ +{% mergeDiff msg msg2 -%} +{ + "id" : "1", + "data" : "newData", + "resourceType" : "newType", + "extension" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/InvalidMergeDiffTemplates/ErrorSyntax2.liquid b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/InvalidMergeDiffTemplates/ErrorSyntax2.liquid new file mode 100644 index 000000000..c801a9b38 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/InvalidMergeDiffTemplates/ErrorSyntax2.liquid @@ -0,0 +1,8 @@ +{% mergeDiff -%} +{ + "id" : "1", + "data" : "newData", + "resourceType" : "newType", + "extension" : "" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/InvalidMergeDiffTemplates/InvalidDiffBlockArray.liquid b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/InvalidMergeDiffTemplates/InvalidDiffBlockArray.liquid new file mode 100644 index 000000000..bfe06f1d1 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/InvalidMergeDiffTemplates/InvalidDiffBlockArray.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +[ + +] +{% endmergeDiff -%} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/InvalidMergeDiffTemplates/InvalidDiffBlockInvalidJson.liquid b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/InvalidMergeDiffTemplates/InvalidDiffBlockInvalidJson.liquid new file mode 100644 index 000000000..755f1a891 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/InvalidMergeDiffTemplates/InvalidDiffBlockInvalidJson.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "invalidJson" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/InvalidMergeDiffTemplates/InvalidDiffBlockString.liquid b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/InvalidMergeDiffTemplates/InvalidDiffBlockString.liquid new file mode 100644 index 000000000..522342676 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/InvalidMergeDiffTemplates/InvalidDiffBlockString.liquid @@ -0,0 +1,3 @@ +{% mergeDiff msg -%} +"diff" +{% endmergeDiff -%} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/InvalidMergeDiffTemplates/RecursiveTooMuchTemplate.liquid b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/InvalidMergeDiffTemplates/RecursiveTooMuchTemplate.liquid new file mode 100644 index 000000000..8eb7e8d91 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/InvalidMergeDiffTemplates/RecursiveTooMuchTemplate.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "extension" : {% include 'RecursiveTooMuchTemplate' msg : msg -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestTemplates/LargeForLoopTemplate.liquid b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/LargeForLoopTemplate.liquid similarity index 100% rename from src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestTemplates/LargeForLoopTemplate.liquid rename to src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/LargeForLoopTemplate.liquid diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestTemplates/NestedForLoopTemplate.liquid b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/NestedForLoopTemplate.liquid similarity index 100% rename from src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestTemplates/NestedForLoopTemplate.liquid rename to src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/NestedForLoopTemplate.liquid diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/NestingTooDeepDiffTemplate.liquid b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/NestingTooDeepDiffTemplate.liquid new file mode 100644 index 000000000..2e969a9ae --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/NestingTooDeepDiffTemplate.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "value": {% include 'NestingTooDeepDiffTemplate' msg:msg -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/NestingTooDeepTemplate.liquid b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/NestingTooDeepTemplate.liquid new file mode 100644 index 000000000..a02e2d0ae --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/NestingTooDeepTemplate.liquid @@ -0,0 +1,3 @@ +{ + "value": {% include 'NestingTooDeepTemplate' msg:msg -%} +} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestTemplates/TimeOutTemplate.liquid b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/TimeOutTemplate.liquid similarity index 100% rename from src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestTemplates/TimeOutTemplate.liquid rename to src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/TimeOutTemplate.liquid diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/ValidMergeDiffTemplates/EmptyDiffContent.liquid b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/ValidMergeDiffTemplates/EmptyDiffContent.liquid new file mode 100644 index 000000000..2455e6f6a --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/ValidMergeDiffTemplates/EmptyDiffContent.liquid @@ -0,0 +1,2 @@ +{% mergeDiff msg -%} +{% endmergeDiff -%} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/ValidMergeDiffTemplates/EmptyDiffContent2.liquid b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/ValidMergeDiffTemplates/EmptyDiffContent2.liquid new file mode 100644 index 000000000..1d069a3df --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/ValidMergeDiffTemplates/EmptyDiffContent2.liquid @@ -0,0 +1,4 @@ +{% mergeDiff msg -%} +{ +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/ValidMergeDiffTemplates/ValidExample1.liquid b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/ValidMergeDiffTemplates/ValidExample1.liquid new file mode 100644 index 000000000..72aea7e00 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/ValidMergeDiffTemplates/ValidExample1.liquid @@ -0,0 +1,9 @@ +{% mergeDiff msg -%} +{ + "id" : "1", + "data" : "newData", + "resourceType" : "newType", + "extension" : "", + "extension" : "replace" +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/ValidMergeDiffTemplates/ValidExample2.liquid b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/ValidMergeDiffTemplates/ValidExample2.liquid new file mode 100644 index 000000000..333fddbfa --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/ValidMergeDiffTemplates/ValidExample2.liquid @@ -0,0 +1,5 @@ +{% mergeDiff msg -%} +{ + "extension" : {% include 'ValidExample1' msg : msg -%} +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/ValidMergeDiffTemplates/ValidExample3.liquid b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/ValidMergeDiffTemplates/ValidExample3.liquid new file mode 100644 index 000000000..16a301898 --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter.UnitTests/TestData/TestTemplates/ValidMergeDiffTemplates/ValidExample3.liquid @@ -0,0 +1,9 @@ +{% mergeDiff msg -%} +{ + "id" : "1", + "data" : "newData", + "resourceType" : "newType", + "extension" : "", + "value[x]" : "", +} +{% endmergeDiff -%} \ No newline at end of file diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter/DotLiquids/MergeDiff.cs b/src/Microsoft.Health.Fhir.Liquid.Converter/DotLiquids/MergeDiff.cs new file mode 100644 index 000000000..26c2cb5fd --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter/DotLiquids/MergeDiff.cs @@ -0,0 +1,140 @@ +// ------------------------------------------------------------------------------------------------- +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License (MIT). See LICENSE in the repo root for license information. +// ------------------------------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text.RegularExpressions; +using DotLiquid; +using DotLiquid.Exceptions; +using DotLiquid.Util; +using Microsoft.Health.Fhir.Liquid.Converter.Models; +using Newtonsoft.Json; +using RenderException = Microsoft.Health.Fhir.Liquid.Converter.Exceptions.RenderException; + +namespace Microsoft.Health.Fhir.Liquid.Converter.DotLiquids +{ + public class MergeDiff : Block + { + private static readonly Regex Syntax = R.B(@"^({0}+)\s$", DotLiquid.Liquid.VariableSignature); + private string _variableName; + private const string _choiceTypeSuffix = "[x]"; + + private List _diffBlock; + + /// + /// Initializes the mergeDiff tag + /// + /// Name of the parsed tag + /// Markup of the parsed tag + /// Tokens of the parsed tag + public override void Initialize(string tagName, string markup, List tokens) + { + Match match = Syntax.Match(markup); + if (match.Success) + { + NodeList = _diffBlock = new List(); + _variableName = match.Groups[0].Value; + } + else + { + throw new SyntaxException(Resources.MergeDiffTagSyntaxError); + } + + // Initialize block content into variable 'Nodelist' + // Variable '_diffBlock' will also be initialized since they refer to the same object. + base.Initialize(tagName, markup, tokens); + } + + public override void Render(Context context, TextWriter result) + { + using StringWriter writer = new StringWriter(); + + context.Stack(() => + { + RenderAll(_diffBlock, context, writer); + }); + + var inputContent = context[_variableName]; + + // If input message is null, it returns empty string to make sure the output is still a valid json object. + // And the element with empty string value will be removed in post processor. + if (inputContent == null) + { + result.Write("\"\""); + return; + } + + // Diff content should be a valid json object. + // If diff content is empty, the input message will output directly. + Dictionary diffDict = null; + + try + { + diffDict = JsonConvert.DeserializeObject>(writer.ToString()); + } + catch (Exception ex) + { + throw new RenderException(FhirConverterErrorCode.InvalidMergeDiffBlockContent, Resources.InvalidMergeDiffBlockContent, ex); + } + + var mergedResult = inputContent; + + // diffDict is null when diff content is empty. + if (diffDict?.Count > 0) + { + mergedResult = MergeDiffContent(inputContent, diffDict); + } + + result.Write(JsonConvert.SerializeObject(mergedResult)); + } + + private Dictionary MergeDiffContent(object source, Dictionary diffDict) + { + Dictionary result; + + // Input message should be a valid json object. + if (source is Hash hashSource) + { + result = new Dictionary(hashSource); + } + else if (source is IDictionary dictSource) + { + result = new Dictionary(dictSource); + } + else + { + throw new RenderException(FhirConverterErrorCode.InvalidInputOfMergeDiffBlock, Resources.InvalidInputOfMergeDiffBlock); + } + + foreach (var item in diffDict) + { + // [x] represent choice type elements. + // Only handle choice type element for the first match. + if (item.Key.EndsWith(_choiceTypeSuffix)) + { + var choiceTypeName = item.Key.Remove(item.Key.Length - _choiceTypeSuffix.Length); + if (string.IsNullOrEmpty(choiceTypeName)) + { + throw new RenderException(FhirConverterErrorCode.InvalidMergeDiffBlockContent, Resources.InvalidMergeDiffBlockContentForChoiceType); + } + + var choiceElement = result.Where(x => x.Key.StartsWith(choiceTypeName)); + if (choiceElement.Any()) + { + result[choiceElement.First().Key] = item.Value; + } + } + else + { + result[item.Key] = item.Value ?? string.Empty; + } + } + + return result; + } + } +} diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter/Filters/CollectionFilters.cs b/src/Microsoft.Health.Fhir.Liquid.Converter/Filters/CollectionFilters.cs index 61b3a0f9f..3084a523e 100644 --- a/src/Microsoft.Health.Fhir.Liquid.Converter/Filters/CollectionFilters.cs +++ b/src/Microsoft.Health.Fhir.Liquid.Converter/Filters/CollectionFilters.cs @@ -45,10 +45,14 @@ public static string BatchRender(Context context, List collection, strin } var sb = new StringBuilder(); - collection?.ForEach(entry => + context.Stack(() => { - context[variableName] = entry; - sb.Append(template.Render(RenderParameters.FromContext(context, CultureInfo.InvariantCulture))); + collection?.ForEach(entry => + { + context[variableName] = entry; + sb.Append(template.Render(RenderParameters.FromContext(context, CultureInfo.InvariantCulture))); + sb.Append(','); + }); }); return sb.ToString(); diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter/Filters/SectionFilters.cs b/src/Microsoft.Health.Fhir.Liquid.Converter/Filters/SectionFilters.cs index 7ec3f6e68..ee3edee25 100644 --- a/src/Microsoft.Health.Fhir.Liquid.Converter/Filters/SectionFilters.cs +++ b/src/Microsoft.Health.Fhir.Liquid.Converter/Filters/SectionFilters.cs @@ -7,7 +7,6 @@ using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; -using DotLiquid; namespace Microsoft.Health.Fhir.Liquid.Converter { @@ -18,7 +17,7 @@ public partial class Filters { private static readonly Regex NormalizeSectionNameRegex = new Regex("[^A-Za-z0-9]"); - public static IDictionary GetFirstCcdaSections(Hash data, string sectionNameContent) + public static IDictionary GetFirstCcdaSections(IDictionary data, string sectionNameContent) { var sectionLists = Filters.GetCcdaSectionLists(data, sectionNameContent); var result = new Dictionary(); @@ -30,7 +29,7 @@ public static IDictionary GetFirstCcdaSections(Hash data, string return result; } - public static IDictionary GetCcdaSectionLists(Hash data, string sectionNameContent) + public static IDictionary GetCcdaSectionLists(IDictionary data, string sectionNameContent) { var result = new Dictionary(); var sectionNames = sectionNameContent.Split("|", StringSplitOptions.RemoveEmptyEntries); @@ -67,7 +66,7 @@ public static IDictionary GetCcdaSectionLists(Hash data, string return result; } - public static IDictionary GetFirstCcdaSectionsByTemplateId(Hash data, string templateIdContent) + public static IDictionary GetFirstCcdaSectionsByTemplateId(IDictionary data, string templateIdContent) { var result = new Dictionary(); var templateIds = templateIdContent.Split("|", StringSplitOptions.RemoveEmptyEntries); @@ -96,12 +95,12 @@ public static IDictionary GetFirstCcdaSectionsByTemplateId(Hash return result; } - private static List GetComponents(Hash data) + private static List GetComponents(IDictionary data) { - var dataComponents = (((data["ClinicalDocument"] as Hash)? - ["component"] as Hash)? - ["structuredBody"] as Hash)? - ["component"]; + var dataComponents = (((data["ClinicalDocument"] as Dictionary)? + .GetValueOrDefault("component") as Dictionary)? + .GetValueOrDefault("structuredBody") as Dictionary)? + .GetValueOrDefault("component"); if (dataComponents == null) { diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter/Microsoft.Health.Fhir.Liquid.Converter.csproj b/src/Microsoft.Health.Fhir.Liquid.Converter/Microsoft.Health.Fhir.Liquid.Converter.csproj index 9fdbdb4ad..18884b3e5 100644 --- a/src/Microsoft.Health.Fhir.Liquid.Converter/Microsoft.Health.Fhir.Liquid.Converter.csproj +++ b/src/Microsoft.Health.Fhir.Liquid.Converter/Microsoft.Health.Fhir.Liquid.Converter.csproj @@ -8,7 +8,7 @@ - + diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter/Models/DataType.cs b/src/Microsoft.Health.Fhir.Liquid.Converter/Models/DataType.cs index 171fa29bf..eb9830b04 100644 --- a/src/Microsoft.Health.Fhir.Liquid.Converter/Models/DataType.cs +++ b/src/Microsoft.Health.Fhir.Liquid.Converter/Models/DataType.cs @@ -13,5 +13,6 @@ public enum DataType Hl7v2, Ccda, Json, + Fhir, } } diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter/Models/FhirConverterErrorCode.cs b/src/Microsoft.Health.Fhir.Liquid.Converter/Models/FhirConverterErrorCode.cs index fe51e5c67..ae8f2f0f4 100644 --- a/src/Microsoft.Health.Fhir.Liquid.Converter/Models/FhirConverterErrorCode.cs +++ b/src/Microsoft.Health.Fhir.Liquid.Converter/Models/FhirConverterErrorCode.cs @@ -39,6 +39,8 @@ public enum FhirConverterErrorCode InvalidDateTimeFormat = 1307, InvalidIdGenerationInput = 1308, InvalidTimeZoneHandling = 1309, + InvalidMergeDiffBlockContent = 1310, + InvalidInputOfMergeDiffBlock = 1311, // PostprocessException JsonParsingError = 1401, diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter/Processors/FhirProcessor.cs b/src/Microsoft.Health.Fhir.Liquid.Converter/Processors/FhirProcessor.cs new file mode 100644 index 000000000..8cb953ddf --- /dev/null +++ b/src/Microsoft.Health.Fhir.Liquid.Converter/Processors/FhirProcessor.cs @@ -0,0 +1,27 @@ +// ------------------------------------------------------------------------------------------------- +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License (MIT). See LICENSE in the repo root for license information. +// ------------------------------------------------------------------------------------------------- + +using Microsoft.Health.Fhir.Liquid.Converter.Models; + +namespace Microsoft.Health.Fhir.Liquid.Converter.Processors +{ + public class FhirProcessor : JsonProcessor + { + public FhirProcessor(ProcessorSettings processorSettings = null) + : base(processorSettings) + { + } + + public override string Convert(string data, string rootTemplate, ITemplateProvider templateProvider, TraceInfo traceInfo = null) + { + // TO DO For FHIR Specific Logic + // 1. Add FHIR related checks for pre-processor and post-processor. + // 2. Add log for version conversion. + // 3. Add logic to process "extension" and "contained" fields. + + return base.Convert(data, rootTemplate, templateProvider, traceInfo); + } + } +} diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter/Resources.Designer.cs b/src/Microsoft.Health.Fhir.Liquid.Converter/Resources.Designer.cs index 927a29655..f7ce4693b 100644 --- a/src/Microsoft.Health.Fhir.Liquid.Converter/Resources.Designer.cs +++ b/src/Microsoft.Health.Fhir.Liquid.Converter/Resources.Designer.cs @@ -104,18 +104,16 @@ internal static string InvalidDateTimeFormat { return ResourceManager.GetString("InvalidDateTimeFormat", resourceCulture); } } - + /// /// Looks up a localized string similar to The type of Date or DateTime is invalid: {0}.. /// - internal static string InvalidDateTimeType - { - get - { + internal static string InvalidDateTimeType { + get { return ResourceManager.GetString("InvalidDateTimeType", resourceCulture); } } - + /// /// Looks up a localized string similar to The hexadecimal number is invalid: {0}.. /// @@ -152,6 +150,33 @@ internal static string InvalidIdGenerationInput { } } + /// + /// Looks up a localized string similar to The input message of 'MergeDiff' tag should be a json object.. + /// + internal static string InvalidInputOfMergeDiffBlock { + get { + return ResourceManager.GetString("InvalidInputOfMergeDiffBlock", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Content in 'MergeDiff' block should be a json object.. + /// + internal static string InvalidMergeDiffBlockContent { + get { + return ResourceManager.GetString("InvalidMergeDiffBlockContent", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to '[x]' is an invalid key in 'MergeDiff' block.. + /// + internal static string InvalidMergeDiffBlockContentForChoiceType { + get { + return ResourceManager.GetString("InvalidMergeDiffBlockContentForChoiceType", resourceCulture); + } + } + /// /// Looks up a localized string similar to TimeZoneHandling only supports 'local', 'utc' and 'preserve'.. /// @@ -179,6 +204,15 @@ internal static string JsonParsingError { } } + /// + /// Looks up a localized string similar to Syntax Error in 'mergeDiff' tag - Valid syntax: mergeDiff [input].. + /// + internal static string MergeDiffTagSyntaxError { + get { + return ResourceManager.GetString("MergeDiffTagSyntaxError", resourceCulture); + } + } + /// /// Looks up a localized string similar to MSH segment misses separators.. /// diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter/Resources.resx b/src/Microsoft.Health.Fhir.Liquid.Converter/Resources.resx index f11a37aed..3517be9ad 100644 --- a/src/Microsoft.Health.Fhir.Liquid.Converter/Resources.resx +++ b/src/Microsoft.Health.Fhir.Liquid.Converter/Resources.resx @@ -147,6 +147,15 @@ The input to generate ID is invalid. + + The input message of 'MergeDiff' tag should be a json object. + + + Content in 'MergeDiff' block should be a json object. + + + '[x]' is an invalid key in 'MergeDiff' block. + TimeZoneHandling only supports 'local', 'utc' and 'preserve'. @@ -156,6 +165,9 @@ Invalid JSON generated: {0}. + + Syntax Error in 'mergeDiff' tag - Valid syntax: mergeDiff [input]. + MSH segment misses separators. diff --git a/src/Microsoft.Health.Fhir.Liquid.Converter/Utilities/TemplateUtility.cs b/src/Microsoft.Health.Fhir.Liquid.Converter/Utilities/TemplateUtility.cs index 85d4f8fd3..480f85bde 100644 --- a/src/Microsoft.Health.Fhir.Liquid.Converter/Utilities/TemplateUtility.cs +++ b/src/Microsoft.Health.Fhir.Liquid.Converter/Utilities/TemplateUtility.cs @@ -25,6 +25,7 @@ public static class TemplateUtility static TemplateUtility() { Template.RegisterTag("evaluate"); + Template.RegisterTag("mergeDiff"); } /// diff --git a/src/Microsoft.Health.Fhir.TemplateManagement.FunctionalTests/TemplateCollectionFunctionalTests.cs b/src/Microsoft.Health.Fhir.TemplateManagement.FunctionalTests/TemplateCollectionFunctionalTests.cs index 03becc4c5..f901a41dc 100644 --- a/src/Microsoft.Health.Fhir.TemplateManagement.FunctionalTests/TemplateCollectionFunctionalTests.cs +++ b/src/Microsoft.Health.Fhir.TemplateManagement.FunctionalTests/TemplateCollectionFunctionalTests.cs @@ -37,6 +37,7 @@ public class TemplateCollectionFunctionalTests : IAsyncLifetime private readonly string _defaultHl7v2TemplateImageReference = "microsofthealth/hl7v2templates:default"; private readonly string _defaultCcdaTemplateImageReference = "microsofthealth/ccdatemplates:default"; private readonly string _defaultJsonTemplateImageReference = "microsofthealth/jsontemplates:default"; + private readonly string _defaultStu3ToR4TemplateImageReference = "microsofthealth/stu3tor4templates:default"; private readonly string testOneLayerImageReference; private readonly string testMultiLayerImageReference; private readonly string testInvalidImageReference; @@ -150,6 +151,28 @@ public static IEnumerable GetJsonDataAndTemplateSources() }); } + public static IEnumerable GetFhirStu3DataAndTemplateSources() + { + var data = new List + { + @"CapabilityStatement", + @"CodeSystem", + @"Observation", + @"OperationDefinition", + @"OperationOutcome", + @"Parameters", + @"Patient", + @"StructureDefinition", + @"ValueSet", + }; + return data.Select(item => new[] + { + Path.Join(_sampleDataDirectory, "Stu3", $"{item}.json"), + Path.Join(_templateDirectory, "Stu3ToR4"), + item, + }); + } + public static IEnumerable GetNotExistImageInfo() { yield return new object[] { "templatetest", "notexist" }; @@ -173,6 +196,7 @@ public static IEnumerable GetDefaultTemplatesInfo() yield return new object[] { "microsofthealth/hl7v2templates:default", "Hl7v2" }; yield return new object[] { "microsofthealth/ccdatemplates:default", "Ccda" }; yield return new object[] { "microsofthealth/jsontemplates:default", "Json" }; + yield return new object[] { "microsofthealth/stu3tor4templates:default", "Stu3ToR4" }; } [Fact] @@ -399,6 +423,28 @@ public async Task GivenJsonSameInputData_WithDifferentTemplateSource_WhenConvert Assert.True(JToken.DeepEquals(imageResultObject, folderResultObject)); } + [Theory] + [MemberData(nameof(GetFhirStu3DataAndTemplateSources))] + public async Task GivenFhirStu3SameInputData_WithDifferentTemplateSource_WhenConvert_ResultShouldBeIdentical(string inputFile, string defaultTemplateDirectory, string rootTemplate) + { + var folderTemplateProvider = new TemplateProvider(defaultTemplateDirectory, DataType.Fhir); + + var templateProviderFactory = new TemplateCollectionProviderFactory(new MemoryCache(new MemoryCacheOptions()), Options.Create(new TemplateCollectionConfiguration())); + var templateProvider = templateProviderFactory.CreateTemplateCollectionProvider(_defaultStu3ToR4TemplateImageReference, string.Empty); + var imageTemplateProvider = new TemplateProvider(await templateProvider.GetTemplateCollectionAsync(CancellationToken.None)); + + var fhirProcessor = new FhirProcessor(); + var inputContent = File.ReadAllText(inputFile); + + var imageResult = fhirProcessor.Convert(inputContent, rootTemplate, imageTemplateProvider); + var folderResult = fhirProcessor.Convert(inputContent, rootTemplate, folderTemplateProvider); + + var imageResultObject = JObject.Parse(imageResult); + var folderResultObject = JObject.Parse(folderResult); + + Assert.True(JToken.DeepEquals(imageResultObject, folderResultObject)); + } + private void TestByTemplate(string inputFile, string entryTemplate, List> templateProvider) { var hl7v2Processor = new Hl7v2Processor(); diff --git a/src/Microsoft.Health.Fhir.TemplateManagement.UnitTests/Models/DefaultTemplateInfoTest.cs b/src/Microsoft.Health.Fhir.TemplateManagement.UnitTests/Models/DefaultTemplateInfoTest.cs index e49862769..4e6007d7d 100644 --- a/src/Microsoft.Health.Fhir.TemplateManagement.UnitTests/Models/DefaultTemplateInfoTest.cs +++ b/src/Microsoft.Health.Fhir.TemplateManagement.UnitTests/Models/DefaultTemplateInfoTest.cs @@ -19,6 +19,7 @@ public static IEnumerable GetValidDefaultTemplateInfo() yield return new object[] { DataType.Hl7v2, "microsofthealth/hl7v2templates:default", "Hl7v2DefaultTemplates.tar.gz" }; yield return new object[] { DataType.Ccda, "microsofthealth/ccdatemplates:default", "CcdaDefaultTemplates.tar.gz" }; yield return new object[] { DataType.Json, "microsofthealth/jsontemplates:default", "JsonDefaultTemplates.tar.gz" }; + yield return new object[] { DataType.Fhir, "microsofthealth/stu3tor4templates:default", "Stu3ToR4DefaultTemplates.tar.gz" }; } public static IEnumerable GetSupportedImageReference() @@ -27,6 +28,7 @@ public static IEnumerable GetSupportedImageReference() yield return new object[] { "microsofthealth/hl7v2templates:default" }; yield return new object[] { "microsofthealth/ccdatemplates:default" }; yield return new object[] { "microsofthealth/jsontemplates:default" }; + yield return new object[] { "microsofthealth/stu3tor4templates:default" }; } public static IEnumerable GetSupportedImageReferenceWithCaseInsensitive() @@ -37,6 +39,7 @@ public static IEnumerable GetSupportedImageReferenceWithCaseInsensitiv yield return new object[] { "MICROSOFTHEALTH/hl7v2templates:default" }; yield return new object[] { "microsofthealth/ccdatemplates:DEFAULT" }; yield return new object[] { "microsofthealth/JSONtemplates:DEFAULT" }; + yield return new object[] { "microsofthealth/STU3ToR4templates:DEFAULT" }; } public static IEnumerable GetUnSupportedImageReference() diff --git a/src/Microsoft.Health.Fhir.TemplateManagement.UnitTests/Models/ImageInfoTest.cs b/src/Microsoft.Health.Fhir.TemplateManagement.UnitTests/Models/ImageInfoTest.cs index 7d5e0dc74..37bb35faf 100644 --- a/src/Microsoft.Health.Fhir.TemplateManagement.UnitTests/Models/ImageInfoTest.cs +++ b/src/Microsoft.Health.Fhir.TemplateManagement.UnitTests/Models/ImageInfoTest.cs @@ -84,6 +84,7 @@ public static IEnumerable GetDefaultTemplateReference() yield return new object[] { "microsofthealth/hl7v2templates:default" }; yield return new object[] { "microsofthealth/ccdatemplates:default" }; yield return new object[] { "microsofthealth/jsontemplates:default" }; + yield return new object[] { "microsofthealth/stu3tor4templates:default" }; } public static IEnumerable GetDefaultTemplateReferenceWithCaseInsensitive() @@ -95,6 +96,7 @@ public static IEnumerable GetDefaultTemplateReferenceWithCaseInsensiti yield return new object[] { "MicrosoftHealth/Hl7v2Templates:default" }; yield return new object[] { "microsoftHealth/CcdaTemplates:default" }; yield return new object[] { "microsoftHealth/JSONTemplates:default" }; + yield return new object[] { "microsoftHealth/STu3tor4Templates:default" }; } public static IEnumerable GetInvalidDefaultTemplateReference() diff --git a/src/Microsoft.Health.Fhir.TemplateManagement.UnitTests/Providers/TemplateCollectionProviderTests.cs b/src/Microsoft.Health.Fhir.TemplateManagement.UnitTests/Providers/TemplateCollectionProviderTests.cs index 41c8bcea0..820d231a5 100644 --- a/src/Microsoft.Health.Fhir.TemplateManagement.UnitTests/Providers/TemplateCollectionProviderTests.cs +++ b/src/Microsoft.Health.Fhir.TemplateManagement.UnitTests/Providers/TemplateCollectionProviderTests.cs @@ -41,6 +41,8 @@ public TemplateCollectionProviderTests() _cache.Set("microsofthealth/ccdatemplates:default", ccdaDefaultTemplateLayer, memoryOption); TemplateLayer jsonDefaultTemplateLayer = TemplateLayer.ReadFromEmbeddedResource("JsonDefaultTemplates.tar.gz"); _cache.Set("microsofthealth/jsontemplates:default", jsonDefaultTemplateLayer, memoryOption); + TemplateLayer stu3ToR4DefaultTemplateLayer = TemplateLayer.ReadFromEmbeddedResource("Stu3ToR4DefaultTemplates.tar.gz"); + _cache.Set("microsofthealth/stu3tor4templates:default", stu3ToR4DefaultTemplateLayer, memoryOption); PushLargeSizeManifest(); } @@ -85,10 +87,11 @@ public static IEnumerable GetImageInfoForArtifactWithTag() public static IEnumerable GetDefaultTemplatesInfo() { - yield return new object[] { "microsofthealth/fhirconverter:default", 852 }; - yield return new object[] { "microsofthealth/hl7v2templates:default", 852 }; + yield return new object[] { "microsofthealth/fhirconverter:default", 915 }; + yield return new object[] { "microsofthealth/hl7v2templates:default", 915 }; yield return new object[] { "microsofthealth/ccdatemplates:default", 821 }; yield return new object[] { "microsofthealth/jsontemplates:default", 2 }; + yield return new object[] { "microsofthealth/stu3tor4templates:default", 261 }; } [Theory] diff --git a/src/Microsoft.Health.Fhir.TemplateManagement.UnitTests/TemplateCollectionProviderFactoryTests.cs b/src/Microsoft.Health.Fhir.TemplateManagement.UnitTests/TemplateCollectionProviderFactoryTests.cs index 8b254de2a..230d2a423 100644 --- a/src/Microsoft.Health.Fhir.TemplateManagement.UnitTests/TemplateCollectionProviderFactoryTests.cs +++ b/src/Microsoft.Health.Fhir.TemplateManagement.UnitTests/TemplateCollectionProviderFactoryTests.cs @@ -26,6 +26,7 @@ public class TemplateCollectionProviderFactoryTests private static readonly string _defaultHl7v2TemplateImageReference = "microsofthealth/hl7v2templates:default"; private static readonly string _defaultCcdaTemplateImageReference = "microsofthealth/ccdatemplates:default"; private static readonly string _defaultJsonTemplateImageReference = "microsofthealth/jsontemplates:default"; + private static readonly string _defaultStu3ToR4TemplateImageReference = "microsofthealth/stu3tor4templates:default"; public static IEnumerable GetValidImageInfoWithTag() { @@ -45,6 +46,7 @@ public static IEnumerable GetDefaultTemplateTarGzFile() yield return new object[] { "Hl7v2NewDefaultTemplates.tar.gz", _defaultHl7v2TemplateImageReference, Path.Join(_testTemplatesPath, "Hl7v2") }; yield return new object[] { "CcdaNewDefaultTemplates.tar.gz", _defaultCcdaTemplateImageReference, Path.Join(_testTemplatesPath, "Ccda") }; yield return new object[] { "JsonNewDefaultTemplates.tar.gz", _defaultJsonTemplateImageReference, Path.Join(_testTemplatesPath, "Json") }; + yield return new object[] { "Stu3ToR4NewDefaultTemplates.tar.gz", _defaultStu3ToR4TemplateImageReference, Path.Join(_testTemplatesPath, "Stu3ToR4") }; } public static IEnumerable GetDefaultImageReference() @@ -53,6 +55,7 @@ public static IEnumerable GetDefaultImageReference() yield return new object[] { _defaultHl7v2TemplateImageReference }; yield return new object[] { _defaultCcdaTemplateImageReference }; yield return new object[] { _defaultJsonTemplateImageReference }; + yield return new object[] { _defaultStu3ToR4TemplateImageReference }; } [Theory] diff --git a/src/Microsoft.Health.Fhir.TemplateManagement/Microsoft.Health.Fhir.TemplateManagement.csproj b/src/Microsoft.Health.Fhir.TemplateManagement/Microsoft.Health.Fhir.TemplateManagement.csproj index bd2181dc3..be4db8c0b 100644 --- a/src/Microsoft.Health.Fhir.TemplateManagement/Microsoft.Health.Fhir.TemplateManagement.csproj +++ b/src/Microsoft.Health.Fhir.TemplateManagement/Microsoft.Health.Fhir.TemplateManagement.csproj @@ -52,6 +52,9 @@ JsonDefaultTemplates.tar.gz + + Stu3ToR4DefaultTemplates.tar.gz + @@ -76,6 +79,7 @@ + diff --git a/src/Microsoft.Health.Fhir.TemplateManagement/Models/DefaultTemplateInfo.cs b/src/Microsoft.Health.Fhir.TemplateManagement/Models/DefaultTemplateInfo.cs index 55c319d7c..6426351e5 100644 --- a/src/Microsoft.Health.Fhir.TemplateManagement/Models/DefaultTemplateInfo.cs +++ b/src/Microsoft.Health.Fhir.TemplateManagement/Models/DefaultTemplateInfo.cs @@ -27,6 +27,7 @@ public DefaultTemplateInfo(DataType dataType, string imageReference, string temp { "microsofthealth/hl7v2templates:default", new DefaultTemplateInfo(DataType.Hl7v2, "microsofthealth/hl7v2templates:default", "Hl7v2DefaultTemplates.tar.gz") }, { "microsofthealth/ccdatemplates:default", new DefaultTemplateInfo(DataType.Ccda, "microsofthealth/ccdatemplates:default", "CcdaDefaultTemplates.tar.gz") }, { "microsofthealth/jsontemplates:default", new DefaultTemplateInfo(DataType.Json, "microsofthealth/jsontemplates:default", "JsonDefaultTemplates.tar.gz") }, + { "microsofthealth/stu3tor4templates:default", new DefaultTemplateInfo(DataType.Fhir, "microsofthealth/stu3tor4templates:default", "Stu3ToR4DefaultTemplates.tar.gz") }, }; public DataType DataType { get; set; }