Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{% assign substanceAdministrationId = entry.substanceAdministration | to_json_string | generate_uuid -%}
{% include 'Resource/MedicationAdministration', medicationAdministration: entry.substanceAdministration, ID: substanceAdministrationId -%}
{% include 'Resource/MedicationAdministration', medicationAdministration: entry.substanceAdministration, ID: substanceAdministrationId, text: text -%}
{% assign manufacturedMaterialId = entry.substanceAdministration.consumable.manufacturedProduct.manufacturedMaterial | to_json_string | generate_uuid -%}
{% include 'Resource/Medication', medication: entry.substanceAdministration.consumable.manufacturedProduct.manufacturedMaterial, ID: manufacturedMaterialId -%}
{% include 'Reference/MedicationAdministration/Subject', ID: substanceAdministrationId, REF: fullPatientId -%}
Expand Down
3 changes: 2 additions & 1 deletion data/Templates/eCR/Header.liquid
Original file line number Diff line number Diff line change
Expand Up @@ -185,8 +185,9 @@

{% assign medicationsAdministered = msg | get_first_ccda_sections_by_template_id: '2.16.840.1.113883.10.20.22.2.38' %}
{% assign entries = medicationsAdministered.2_16_840_1_113883_10_20_22_2_38.entry | to_array -%}
{% assign medAdminText = medicationsAdministered.2_16_840_1_113883_10_20_22_2_38.text -%}
{% for entry in entries %}
{% include 'Entry/MedicationAdministration/entry', entry: entry %}
{% include 'Entry/MedicationAdministration/entry', entry: entry, text: medAdminText %}
{% endfor %}

{% assign guardian = msg.ClinicalDocument.recordTarget.patientRole.patient.guardian %}
Expand Down
6 changes: 6 additions & 0 deletions data/Templates/eCR/Resource/MedicationAdministration.liquid
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@
{%- endif -%}
"dosage":
{
{% if medicationAdministration.text.reference.value -%}
{% assign medTextRefVal = medicationAdministration.text.reference.value | replace: '#', '' -%}
"text": "{{ text._innerText | find_inner_text_by_id: medTextRefVal | clean_string_from_tabs | escape_special_chars }}",
{% else -%}
"text": "{{ medicationAdministration.text._innerText | default: medicationAdministration.text._ | clean_string_from_tabs | escape_special_chars }}",
{% endif -%}
"route":
{
{% include 'DataType/CodeableConcept', CodeableConcept: medicationAdministration.routeCode -%}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1488,7 +1488,7 @@
"reference": "Patient/f238f1ae-2f55-cd21-5c90-5e68a10af8ce"
},
"period": {
"start": "201810081426-0500"
"start": "2018-10-08T14:26:00-05:00"
},
"participant": [
{
Expand All @@ -1507,7 +1507,7 @@
"reference": "Practitioner/332b44ba-27b8-6426-b122-df06a0d9730f"
},
"period": {
"start": "201810081426-0500"
"start": "2018-10-08T14:26:00-05:00"
},
"modifierExtension": [
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1208,6 +1208,7 @@
"start": "1981-10-16T17:31:14Z"
},
"dosage": {
"text": "REMOVED",
"route": {
"coding": [
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public void MedicationAdministration_AllFields()
{ "period", new { value = "12", unit = "h" } }
}
},
text = new { _innerText = "1 tablet oral" },
routeCode = new {
code = "C38288",
codeSystem = "2.16.840.1.113883.3.26.1.1",
Expand Down Expand Up @@ -98,6 +99,7 @@ public void MedicationAdministration_AllFields()
Assert.NotNull(actualFhir.Status);
Assert.NotEmpty(actualFhir.Effective);

Assert.Equal("1 tablet oral", actualFhir.Dosage.Text);
Assert.Equal("ORAL", actualFhir.Dosage.Route.Coding.First().Display);
Assert.Equal(1, actualFhir.Dosage.Dose.Value);
Assert.Equal("g", actualFhir.Dosage.Dose.Unit);
Expand All @@ -107,5 +109,69 @@ public void MedicationAdministration_AllFields()

Assert.Equal("Patient\u0027s condition improved", actualFhir.GetExtensionValue<CodeableConcept>("http://hl7.org/fhir/us/ecr/StructureDefinition/us-ph-therapeutic-medication-response-extension").Coding.First().Display);
}

[Fact]
public void MedicationAdministration_DosageText_WithInnerText()
{
var attributes = new Dictionary<string, object>
{
{ "ID", "1234" },
{
"medicationAdministration",
new
{
statusCode = new { code = "completed" },
text = new { _innerText = "Take 1 tablet orally & daily" },
}
},
};
var actualFhir = GetFhirObjectFromTemplate<MedicationAdministration>(ECRPath, attributes);

Assert.Equal("Take 1 tablet orally & daily", actualFhir.Dosage.Text);
}

[Fact]
public void MedicationAdministration_DosageText_WithSectionReference()
{
var attributes = new Dictionary<string, object>
{
{ "ID", "1234" },
{
"medicationAdministration",
new
{
statusCode = new { code = "completed" },
text = new { reference = new { value = "#sig1" } },
}
},
{
"text",
new { _innerText = "<paragraph ID=\"sig1\">1 tablet oral twice daily</paragraph>" }
},
};
var actualFhir = GetFhirObjectFromTemplate<MedicationAdministration>(ECRPath, attributes);

Assert.Equal("1 tablet oral twice daily", actualFhir.Dosage.Text);
}

[Fact]
public void MedicationAdministration_DosageText_WithSimpleText()
{
var attributes = new Dictionary<string, object>
{
{ "ID", "1234" },
{
"medicationAdministration",
new
{
statusCode = new { code = "completed" },
text = new { _ = "Take 2 tablets every 8 hours" },
}
},
};
var actualFhir = GetFhirObjectFromTemplate<MedicationAdministration>(ECRPath, attributes);

Assert.Equal("Take 2 tablets every 8 hours", actualFhir.Dosage.Text);
}
}
}
Loading