National Healthcare Safety Network (NHSN) Digital Quality Measure (dQM) Reporting Implementation Guide
1.0.0-ballot - STU1 Ballot United States of America flag

National Healthcare Safety Network (NHSN) Digital Quality Measure (dQM) Reporting Implementation Guide, published by HL7 International / Public Health. This guide is not an authorized publication; it is the continuous build for version 1.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/nhsn-dqm/ and changes regularly. See the Directory of published versions

: Acute Care Hospital Initial Population Library - TTL Representation

Page standards status: Informative

Raw ttl | Download

@prefix fhir: <http://hl7.org/fhir/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

# - resource -------------------------------------------------------------------

 a fhir:Library ;
  fhir:nodeRole fhir:treeRoot ;
  fhir:id [ fhir:v "NHSNdQMAcuteCareHospitalInitialPopulationLibrary"] ; # 
  fhir:text [
fhir:status [ fhir:v "generated" ] ;
fhir:div "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: Library NHSNdQMAcuteCareHospitalInitialPopulationLibrary</b></p><a name=\"NHSNdQMAcuteCareHospitalInitialPopulationLibrary\"> </a><a name=\"hcNHSNdQMAcuteCareHospitalInitialPopulationLibrary\"> </a><a name=\"NHSNdQMAcuteCareHospitalInitialPopulationLibrary-en-US\"> </a><h2>Related Artifacts</h2><table class=\"grid\"><tr><td>Depends On</td><td>FHIR model information</td><td><a href=\"http://fhir.org/guides/cqf/common/4.0.1/4.0.1/Library-FHIR-ModelInfo.html\">http://fhir.org/guides/cqf/common/Library/FHIR-ModelInfo|4.0.1</a></td></tr><tr><td>Depends On</td><td>Library FHIRHelpers</td><td><a href=\"http://fhir.org/guides/cqf/common/4.0.1/4.0.1/Library-FHIRHelpers.html\">http://fhir.org/guides/cqf/common/Library/FHIRHelpers|4.0.1</a></td></tr><tr><td>Depends On</td><td>Library Global</td><td><a href=\"http://hl7.org/fhir/us/cqfmeasures/STU4/Library-MATGlobalCommonFunctions.html\">http://hl7.org/fhir/us/cqfmeasures/Library/MATGlobalCommonFunctions</a></td></tr><tr><td>Depends On</td><td>Library SDE</td><td><a href=\"http://hl7.org/fhir/us/cqfmeasures/STU4/Library-SupplementalDataElements.html\">http://hl7.org/fhir/us/cqfmeasures/Library/SupplementalDataElements</a></td></tr><tr><td>Depends On</td><td>Code system ActCode</td><td><a href=\"http://terminology.hl7.org/5.5.0/CodeSystem-v3-ActCode.html\">ActCode</a></td></tr><tr><td>Depends On</td><td>Code system Observation Category</td><td><a href=\"http://terminology.hl7.org/5.5.0/CodeSystem-observation-category.html\">Observation Category Codes</a></td></tr><tr><td>Depends On</td><td>Code system LOINC</td><td><a href=\"http://terminology.hl7.org/5.5.0/CodeSystem-v3-loinc.html\">Logical Observation Identifiers, Names and Codes (LOINC)</a></td></tr><tr><td>Depends On</td><td>Code system V2-0074</td><td><a href=\"http://terminology.hl7.org/5.3.0/CodeSystem-v2-0074.html\">diagnosticServiceSectionId</a></td></tr><tr><td>Depends On</td><td>Value set Inpatient, Emergency, and Observation Locations</td><td><a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113762.1.4.1046.265/expansion\">Inpatient, Emergency, and Observation Locations</a></td></tr><tr><td>Depends On</td><td>Value set Emergency Department Visit</td><td><a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.117.1.7.1.292/expansion\">Emergency Department Visit</a></td></tr><tr><td>Depends On</td><td>Value set Encounter Inpatient</td><td><a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.666.5.307/expansion\">Encounter Inpatient</a></td></tr><tr><td>Depends On</td><td>Value set Observation Services</td><td><a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113762.1.4.1111.143/expansion\">Observation Services</a></td></tr><tr><td>Depends On</td><td>Value set NHSN Inpatient Encounter Class Codes</td><td><a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113762.1.4.1046.274/expansion\">http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.274</a></td></tr></table><h2>Parameters</h2><table class=\"grid\"><tr><td>Measurement Period</td><td>in</td><td>0</td><td>1</td><td>Period</td></tr><tr><td>Patient</td><td>out</td><td>0</td><td>1</td><td>Patient</td></tr><tr><td>Qualifying Encounters During Measurement Period</td><td>out</td><td>0</td><td>*</td><td>Encounter</td></tr><tr><td>Encounters</td><td>out</td><td>0</td><td>*</td><td>Encounter</td></tr><tr><td>Encounters with Patient Hospital Locations</td><td>out</td><td>0</td><td>*</td><td>Encounter</td></tr><tr><td>Initial Population</td><td>out</td><td>0</td><td>*</td><td>Encounter</td></tr><tr><td>DiagnosticReports</td><td>out</td><td>0</td><td>*</td><td>DiagnosticReport</td></tr><tr><td>Observations</td><td>out</td><td>0</td><td>*</td><td>Observation</td></tr><tr><td>IP Encounters Overlap Measurement Period</td><td>out</td><td>0</td><td>*</td><td>Encounter</td></tr><tr><td>Get Locations from IP Encounters in Measurement Period</td><td>out</td><td>0</td><td>*</td><td>Location</td></tr><tr><td>SDE Condition</td><td>out</td><td>0</td><td>*</td><td>Condition</td></tr><tr><td>SDE Device</td><td>out</td><td>0</td><td>*</td><td>Device</td></tr><tr><td>SDE DiagnosticReport Lab</td><td>out</td><td>0</td><td>*</td><td>DiagnosticReport</td></tr><tr><td>SDE DiagnosticReport Note</td><td>out</td><td>0</td><td>*</td><td>DiagnosticReport</td></tr><tr><td>SDE DiagnosticReport Others</td><td>out</td><td>0</td><td>*</td><td>DiagnosticReport</td></tr><tr><td>SDE Encounter</td><td>out</td><td>0</td><td>*</td><td>Encounter</td></tr><tr><td>SDE Location</td><td>out</td><td>0</td><td>*</td><td>Location</td></tr><tr><td>SDE Medication Administration</td><td>out</td><td>0</td><td>*</td><td>MedicationAdministration</td></tr><tr><td>SDE Medication Request</td><td>out</td><td>0</td><td>*</td><td>MedicationRequest</td></tr><tr><td>SDE Medication</td><td>out</td><td>0</td><td>*</td><td>Medication</td></tr><tr><td>SDE Observation Lab Category</td><td>out</td><td>0</td><td>*</td><td>Observation</td></tr><tr><td>SDE Observation Vital Signs Category</td><td>out</td><td>0</td><td>*</td><td>Observation</td></tr><tr><td>SDE Observation Category</td><td>out</td><td>0</td><td>*</td><td>Observation</td></tr><tr><td>SDE Coverage</td><td>out</td><td>0</td><td>*</td><td>Coverage</td></tr><tr><td>SDE Procedure</td><td>out</td><td>0</td><td>*</td><td>Procedure</td></tr><tr><td>SDE Specimen</td><td>out</td><td>0</td><td>*</td><td>Specimen</td></tr><tr><td>SDE Service Request</td><td>out</td><td>0</td><td>*</td><td>ServiceRequest</td></tr><tr><td>SDE Minimal Patient</td><td>out</td><td>0</td><td>1</td><td>Patient</td></tr></table><h2>Data Requirements</h2><table class=\"grid\"><tr><td colspan=\"2\"><b>Type</b>: <a href=\"http://hl7.org/fhir/R4/patient.html\">Patient</a> (<a href=\"http://hl7.org/fhir/R4/patient.html\">Patient</a>)</td></tr></table><table class=\"grid\"><tr><td colspan=\"2\"><b>Type</b>: <a href=\"http://hl7.org/fhir/R4/encounter.html\">Encounter</a> (<a href=\"http://hl7.org/fhir/R4/encounter.html\">Encounter</a>)</td></tr><tr style=\"background-color: #efefef\"><td>Filter</td><td>Value</td></tr><tr><td>type</td><td>In ValueSet <a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.666.5.307/expansion\">Encounter Inpatient</a></td></tr></table><table class=\"grid\"><tr><td colspan=\"2\"><b>Type</b>: <a href=\"http://hl7.org/fhir/R4/encounter.html\">Encounter</a> (<a href=\"http://hl7.org/fhir/R4/encounter.html\">Encounter</a>)</td></tr><tr style=\"background-color: #efefef\"><td>Filter</td><td>Value</td></tr><tr><td>type</td><td>In ValueSet <a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.117.1.7.1.292/expansion\">Emergency Department Visit</a></td></tr></table><table class=\"grid\"><tr><td colspan=\"2\"><b>Type</b>: <a href=\"http://hl7.org/fhir/R4/encounter.html\">Encounter</a> (<a href=\"http://hl7.org/fhir/R4/encounter.html\">Encounter</a>)</td></tr><tr style=\"background-color: #efefef\"><td>Filter</td><td>Value</td></tr><tr><td>type</td><td>In ValueSet <a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113762.1.4.1111.143/expansion\">Observation Services</a></td></tr></table><table class=\"grid\"><tr><td colspan=\"2\"><b>Type</b>: <a href=\"http://hl7.org/fhir/R4/encounter.html\">Encounter</a> (<a href=\"http://hl7.org/fhir/R4/encounter.html\">Encounter</a>)</td></tr><tr style=\"background-color: #efefef\"><td>Filter</td><td>Value</td></tr><tr><td>class</td><td>In ValueSet <a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113762.1.4.1046.274/expansion\">http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.274</a></td></tr></table><table class=\"grid\"><tr><td colspan=\"2\"><b>Type</b>: <a href=\"http://hl7.org/fhir/R4/encounter.html\">Encounter</a> (<a href=\"http://hl7.org/fhir/R4/encounter.html\">Encounter</a>)</td></tr></table><table class=\"grid\"><tr><td colspan=\"2\"><b>Type</b>: <a href=\"http://hl7.org/fhir/R4/location.html\">Location</a> (<a href=\"http://hl7.org/fhir/R4/location.html\">Location</a>)</td></tr></table><table class=\"grid\"><tr><td colspan=\"2\"><b>Type</b>: <a href=\"http://hl7.org/fhir/R4/diagnosticreport.html\">DiagnosticReport</a> (<a href=\"http://hl7.org/fhir/R4/diagnosticreport.html\">DiagnosticReport</a>)</td></tr></table><table class=\"grid\"><tr><td colspan=\"2\"><b>Type</b>: <a href=\"http://hl7.org/fhir/R4/observation.html\">Observation</a> (<a href=\"http://hl7.org/fhir/R4/observation.html\">Observation</a>)</td></tr></table><table class=\"grid\"><tr><td colspan=\"2\"><b>Type</b>: <a href=\"http://hl7.org/fhir/R4/condition.html\">Condition</a> (<a href=\"http://hl7.org/fhir/R4/condition.html\">Condition</a>)</td></tr></table><table class=\"grid\"><tr><td colspan=\"2\"><b>Type</b>: <a href=\"http://hl7.org/fhir/R4/device.html\">Device</a> (<a href=\"http://hl7.org/fhir/R4/device.html\">Device</a>)</td></tr></table><table class=\"grid\"><tr><td colspan=\"2\"><b>Type</b>: <a href=\"http://hl7.org/fhir/R4/medicationadministration.html\">MedicationAdministration</a> (<a href=\"http://hl7.org/fhir/R4/medicationadministration.html\">MedicationAdministration</a>)</td></tr></table><table class=\"grid\"><tr><td colspan=\"2\"><b>Type</b>: <a href=\"http://hl7.org/fhir/R4/medicationrequest.html\">MedicationRequest</a> (<a href=\"http://hl7.org/fhir/R4/medicationrequest.html\">MedicationRequest</a>)</td></tr></table><table class=\"grid\"><tr><td colspan=\"2\"><b>Type</b>: <a href=\"http://hl7.org/fhir/R4/medication.html\">Medication</a> (<a href=\"http://hl7.org/fhir/R4/medication.html\">Medication</a>)</td></tr></table><table class=\"grid\"><tr><td colspan=\"2\"><b>Type</b>: <a href=\"http://hl7.org/fhir/R4/coverage.html\">Coverage</a> (<a href=\"http://hl7.org/fhir/R4/coverage.html\">Coverage</a>)</td></tr></table><table class=\"grid\"><tr><td colspan=\"2\"><b>Type</b>: <a href=\"http://hl7.org/fhir/R4/procedure.html\">Procedure</a> (<a href=\"http://hl7.org/fhir/R4/procedure.html\">Procedure</a>)</td></tr></table><table class=\"grid\"><tr><td colspan=\"2\"><b>Type</b>: <a href=\"http://hl7.org/fhir/R4/specimen.html\">Specimen</a> (<a href=\"http://hl7.org/fhir/R4/specimen.html\">Specimen</a>)</td></tr></table><table class=\"grid\"><tr><td colspan=\"2\"><b>Type</b>: <a href=\"http://hl7.org/fhir/R4/servicerequest.html\">ServiceRequest</a> (<a href=\"http://hl7.org/fhir/R4/servicerequest.html\">ServiceRequest</a>)</td></tr></table><h2>Contents</h2><p><code>text/cql</code></p><pre><code>library NHSNdQMAcuteCareHospitalInitialPopulation version '0.0.014'\n\nusing FHIR version '4.0.1'\n\ninclude FHIRHelpers version '4.0.1' called FHIRHelpers\ninclude MATGlobalCommonFunctionsFHIR4 version '6.1.000' called Global\ninclude SupplementalDataElementsFHIR4 version '2.0.000' called SDE\ninclude SharedResourceCreation version '0.1.005' called SharedResource\n\ncodesystem &quot;ActCode&quot;: 'http://terminology.hl7.org/CodeSystem/v3-ActCode'\ncodesystem &quot;Observation Category&quot;: 'http://terminology.hl7.org/CodeSystem/observation-category'\ncodesystem &quot;LOINC&quot;: 'http://loinc.org' \ncodesystem &quot;V2-0074&quot;: 'http://terminology.hl7.org/CodeSystem/v2-0074'\n\nvalueset &quot;Inpatient, Emergency, and Observation Locations&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.265'\nvalueset &quot;Emergency Department Visit&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292'\nvalueset &quot;Encounter Inpatient&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.307'\nvalueset &quot;Observation Services&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.143'\nvalueset &quot;NHSN Inpatient Encounter Class Codes&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.274'\n\n//code for Observation Category\ncode &quot;laboratory&quot;: 'laboratory' from &quot;Observation Category&quot; display 'Laboratory'\ncode &quot;social-history&quot;: 'social-history' from &quot;Observation Category&quot; display 'Social History'\ncode &quot;vital-signs&quot;: 'vital-signs' from &quot;Observation Category&quot; display 'Vital Signs'\ncode &quot;imaging&quot;: 'imaging' from &quot;Observation Category&quot; display 'Imaging'\ncode &quot;procedure&quot;: 'procedure' from &quot;Observation Category&quot; display 'Procedure'\ncode &quot;survey&quot;: 'survey' from &quot;Observation Category&quot; display 'Survey'\n\n//code for Diagnostic Report Category\ncode &quot;LAB&quot;: 'LAB' from &quot;V2-0074&quot; display 'Laboratory'\ncode &quot;Radiology&quot;: 'LP29684-5' from &quot;LOINC&quot; display 'Radiology'\ncode &quot;Pathology&quot;: 'LP7839-6' from &quot;LOINC&quot; display 'Pathology'\ncode &quot;Cardiology&quot;: 'LP29708-2' from &quot;LOINC&quot; display 'Cardiology'\n\nparameter &quot;Measurement Period&quot; \n    default Interval[@2024-01-01T00:00:00.0, @2024-01-31T00:00:00.0)\n\ncontext Patient \n\ndefine &quot;Qualifying Encounters During Measurement Period&quot;:\n ( [Encounter: &quot;Encounter Inpatient&quot;]\n  union [Encounter: &quot;Emergency Department Visit&quot;]\n  union [Encounter: &quot;Observation Services&quot;]\n  union [Encounter: class in &quot;NHSN Inpatient Encounter Class Codes&quot;]) QualifyingEncounters\n  where QualifyingEncounters.status in {'in-progress', 'finished', 'triaged', 'onleave', 'entered-in-error'}\n    and QualifyingEncounters.period overlaps &quot;Measurement Period&quot; \n\ndefine &quot;Encounters with Patient Hospital Locations&quot;:\n  &quot;Encounters&quot; Encounters\n  where exists(\n    Encounters.location EncounterLocation\n    where Global.GetLocation(EncounterLocation.location).type in &quot;Inpatient, Emergency, and Observation Locations&quot;\n      and EncounterLocation.period overlaps Encounters.period\n  )\n  and Encounters.status in {'in-progress', 'finished', 'triaged', 'onleave', 'entered-in-error'}\n  and Encounters.period overlaps &quot;Measurement Period&quot;\n\ndefine &quot;Initial Population&quot;:\n  &quot;Qualifying Encounters During Measurement Period&quot;\n  union &quot;Encounters with Patient Hospital Locations&quot;\n\ndefine &quot;Encounters&quot;:\n  [Encounter]\n\ndefine &quot;DiagnosticReports&quot;:\n  [DiagnosticReport]\n\ndefine &quot;Observations&quot;:\n  [Observation]\n\n//Double checking for IP's period during MP as IP is created out of qualifying encounters, which checks for it, \n//and encounter's locations, which doesn't\ndefine &quot;IP Encounters Overlap Measurement Period&quot;:\n  &quot;Initial Population&quot; IP\n  where IP.period overlaps &quot;Measurement Period&quot;\n\ndefine &quot;Get Locations from IP Encounters in Measurement Period&quot;:\n  flatten(&quot;IP Encounters Overlap Measurement Period&quot; Encounters\n  let locationElements: Encounters.location\n  return\n    locationElements LE\n    let locationReference: LE.location\n    return Global.GetLocation(locationReference))\n\n//============================================================================\n//Supplemental Data Element\n//When FHIR.canonical value is present, US Core 3.1.1 profiles are used\n//When FHIR.canonical value is not present, FHIR Base profiles are used\n//============================================================================\ndefine &quot;SDE Condition&quot;:\n  [Condition] Conditions \n  where exists(&quot;Initial Population&quot;)\n  return SharedResource.ConditionResource(Conditions,\n  {FHIR.canonical{value: 'http://hl7.org/fhir/us/nhsn-dqm/StructureDefinition/ach-condition'}})\n\ndefine &quot;SDE Device&quot;:\n  [Device] Devices \n  where exists(&quot;Initial Population&quot;)\n  return DeviceResource(Devices,\n  {FHIR.canonical{value: 'http://hl7.org/fhir/us/nhsn-dqm/StructureDefinition/ach-device'}})\n\ndefine &quot;SDE DiagnosticReport Lab&quot;:\n  &quot;DiagnosticReports&quot; DiagnosticReports\n  where (exists(DiagnosticReports.category Category where Category ~ &quot;LAB&quot;)\n    and exists(\n      &quot;Initial Population&quot; IP\n      where Global.&quot;Normalize Interval&quot;(DiagnosticReports.effective) overlaps IP.period))\n  return SharedResource.DiagnosticReportLabResource(DiagnosticReports,\n  {FHIR.canonical{value: 'http://hl7.org/fhir/us/nhsn-dqm/StructureDefinition/ach-diagnosticreport-lab'}})\n \ndefine &quot;SDE DiagnosticReport Note&quot;:\n  &quot;DiagnosticReports&quot; DiagnosticReports\n  where ((exists(DiagnosticReports.category Category where Category ~ &quot;Radiology&quot;))\n    or exists((DiagnosticReports.category Category where Category ~ &quot;Pathology&quot;))\n    or exists((DiagnosticReports.category Category where Category ~ &quot;Cardiology&quot;)))\n    and exists(\n      &quot;Initial Population&quot; IP\n      where Global.&quot;Normalize Interval&quot;(DiagnosticReports.effective) overlaps IP.period)\n  return DiagnosticReportResource(DiagnosticReports,\n  {FHIR.canonical{value: 'http://hl7.org/fhir/us/nhsn-dqm/StructureDefinition/ach-diagnosticreport-note'}})\n\ndefine &quot;SDE DiagnosticReport Others&quot;:\n  [DiagnosticReport] DiagnosticReports\n  where not ((exists(DiagnosticReports.category Category where Category ~ &quot;Radiology&quot;))\n    or exists((DiagnosticReports.category Category where Category ~ &quot;Pathology&quot;))\n    or exists((DiagnosticReports.category Category where Category ~ &quot;Cardiology&quot;))\n    or exists(DiagnosticReports.category Category where Category ~ &quot;LAB&quot;))\n    and exists(&quot;Initial Population&quot; IP\n      where Global.&quot;Normalize Interval&quot;(DiagnosticReports.effective) overlaps IP.period)\n  return DiagnosticReportResource(DiagnosticReports,\n  {FHIR.canonical{value: 'http://hl7.org/fhir/us/nhsn-dqm/StructureDefinition/ach-diagnosticreport'}})\n\ndefine &quot;SDE Encounter&quot;: \n  &quot;Encounters&quot; Encounters\n  where exists(\n    &quot;Initial Population&quot; IP\n    where Encounters.period overlaps IP.period)\n  return EncounterResource(Encounters,\n  {FHIR.canonical{value: 'http://hl7.org/fhir/us/nhsn-dqm/StructureDefinition/ach-encounter'}})\n\ndefine &quot;SDE Location&quot;:\n  &quot;Get Locations from IP Encounters in Measurement Period&quot; Locations\n  where exists(&quot;Initial Population&quot;)\n  and Locations is not null\n  return SharedResource.LocationResource(Locations,\n  {FHIR.canonical{value: 'http://hl7.org/fhir/us/nhsn-dqm/StructureDefinition/ach-location'}})\n \ndefine &quot;SDE Medication Administration&quot;:\n  [MedicationAdministration] MedicationAdministrations \n  where exists(\n    &quot;Initial Population&quot; IP\n    where Global.&quot;Normalize Interval&quot;(MedicationAdministrations.effective) overlaps IP.period)\n  return SharedResource.MedicationAdministrationResource(MedicationAdministrations,\n  {FHIR.canonical{value: 'http://hl7.org/fhir/us/nhsn-dqm/StructureDefinition/ach-medicationadministration'}})\n \ndefine &quot;SDE Medication Request&quot;:\n  [MedicationRequest] MedicationRequests \n  where exists(\n    &quot;Initial Population&quot; IP\n    where MedicationRequests.authoredOn during IP.period)\n  return SharedResource.MedicationRequestResource(MedicationRequests,\n  {FHIR.canonical{value: 'http://hl7.org/fhir/us/nhsn-dqm/StructureDefinition/ach-medicationrequest'}})\n\ndefine &quot;SDE Medication&quot;:\n  (&quot;SDE Medication Request&quot;\n  union &quot;SDE Medication Administration&quot;) MedReqOrAdmin\n  where MedReqOrAdmin.medication is FHIR.Reference\n  and exists(&quot;Initial Population&quot;) //No longer need to check for timing here because it's checked in SDE Medication Request/Administriation\n  return SharedResource.MedicationResource(GetMedicationFrom(MedReqOrAdmin.medication),\n  {FHIR.canonical{value: 'http://hl7.org/fhir/us/nhsn-dqm/StructureDefinition/ach-medication'}})\n\ndefine &quot;SDE Observation Lab Category&quot;:\n  &quot;Observations&quot; Observations \n  where (exists(Observations.category Category where Category ~ &quot;laboratory&quot;))\n    and exists(\n      &quot;Initial Population&quot; IP\n      where Global.&quot;Normalize Interval&quot;(Observations.effective) overlaps IP.period)\n  return SharedResource.ObservationLabResource(Observations,\n  {FHIR.canonical{value: 'http://hl7.org/fhir/us/nhsn-dqm/StructureDefinition/ach-observation-lab'}})\n\n//Vital Signs Observation has its own profile in FHIR Base\ndefine &quot;SDE Observation Vital Signs Category&quot;:\n  &quot;Observations&quot; Observations \n  where (exists(Observations.category Category where Category ~ &quot;vital-signs&quot;))\n    and exists(\n      &quot;Initial Population&quot; IP\n      where Global.&quot;Normalize Interval&quot;(Observations.effective) overlaps IP.period)\n  return ObservationVitalSignsResource(Observations,\n  {FHIR.canonical{value: 'http://hl7.org/fhir/us/nhsn-dqm/StructureDefinition/ach-observation-vitals'}})\n\n//Defaulting to base FHIR profile as there are no individual profiles in US Core 3.1.1 that cover these Observation categories\ndefine &quot;SDE Observation Category&quot;:\n  &quot;Observations&quot; Observations \n  where ((exists(Observations.category Category where Category ~ &quot;social-history&quot;))\n    or (exists(Observations.category Category where Category ~ &quot;survey&quot;))\n    or (exists(Observations.category Category where Category ~ &quot;imaging&quot;))\n    or (exists(Observations.category Category where Category ~ &quot;procedure&quot;)))\n    and exists(\n      &quot;Initial Population&quot; IP\n      where Global.&quot;Normalize Interval&quot;(Observations.effective) overlaps IP.period)\n  return ObservationResource(Observations,\n  {FHIR.canonical{value: 'http://hl7.org/fhir/us/nhsn-dqm/StructureDefinition/ach-observation'}})\n\ndefine &quot;SDE Coverage&quot;: \n	[Coverage] Coverages\n  where exists(\n    &quot;Initial Population&quot; IP\n    where Coverages.period overlaps IP.period)\n  return SharedResource.CoverageResource(Coverages,\n  {FHIR.canonical{value: 'http://hl7.org/fhir/us/nhsn-dqm/StructureDefinition/ach-coverage'}})\n\ndefine &quot;SDE Procedure&quot;:\n  [Procedure] Procedures \n  where exists(\n    &quot;Initial Population&quot; IP\n    where Global.&quot;Normalize Interval&quot;(Procedures.performed) overlaps IP.period)\n  return SharedResource.ProcedureResource(Procedures,\n  {FHIR.canonical{value: 'http://hl7.org/fhir/us/nhsn-dqm/StructureDefinition/ach-procedure'}})\n\ndefine &quot;SDE Specimen&quot;:\n  [Specimen] Specimens\n  where exists(\n    &quot;Initial Population&quot; IP\n    where Global.&quot;Normalize Interval&quot;(Specimens.collection.collected) overlaps IP.period\n  )\n  return SharedResource.SpecimenResource(Specimens,\n  {FHIR.canonical{value: 'http://hl7.org/fhir/us/nhsn-dqm/StructureDefinition/ach-specimen'}})\n\ndefine &quot;SDE Service Request&quot;:\n  [ServiceRequest] ServiceRequests\n  where exists(&quot;Initial Population&quot; IP\n    where ServiceRequests.authoredOn during IP.period)\n  return SharedResource.ServiceRequestResource(ServiceRequests,\n  {FHIR.canonical{value: 'http://hl7.org/fhir/us/nhsn-dqm/StructureDefinition/ach-servicerequest'}})\n\ndefine &quot;SDE Minimal Patient&quot;:\n  Patient p\n  return SharedResource.PatientResource(p,\n  {FHIR.canonical{value: 'http://hl7.org/fhir/us/nhsn-dqm/StructureDefinition/cross-measure-patient'}})\n\n//\n//Functions\n//\ndefine function &quot;GetMedicationFrom&quot;(choice Choice&lt;FHIR.CodeableConcept, FHIR.Reference&gt;):\n  case\n    when choice is FHIR.Reference then\n      GetMedication(choice as FHIR.Reference)\n    else\n      null\n  end\n\ndefine function &quot;GetMedication&quot;(reference Reference ):\n  singleton from (\n    [Medication] Medications\n    where Medications.id = Global.GetId(reference.reference)\n  )\n\n//\n//Measure Specific Resource Creation Functions\n//\ndefine function DeviceUdiCarrier(udiCarrier List&lt;FHIR.Device.UdiCarrier&gt;):\n  udiCarrier u\n  return FHIR.Device.UdiCarrier{\n    deviceIdentifier: u.deviceIdentifier,\n    issuer: u.issuer,\n    jurisdiction: u.jurisdiction,\n    carrierAIDC: u.carrierAIDC,\n    carrierHRF: u.carrierHRF,\n    entryType: u.entryType\n  }\n\ndefine function DeviceDeviceName(deviceName List&lt;FHIR.Device.DeviceName&gt;):\n  deviceName d\n  return FHIR.Device.DeviceName{\n    name: d.name,\n    type: d.type\n  }\n\ndefine function DeviceSpecialization(specialization List&lt;FHIR.Device.Specialization&gt;):\n  specialization s\n  return FHIR.Device.Specialization{\n    systemType: s.systemType,\n    version: s.version\n  }\n\ndefine function DeviceVersion(version List&lt;FHIR.Device.Version&gt;):\n  version v\n  return FHIR.Device.Version{\n    type: v.type,\n    component: v.component,\n    value: v.value\n  }\n\ndefine function DeviceProperty(deviceProperty List&lt;FHIR.Device.Property&gt;):\n  deviceProperty d\n  return FHIR.Device.Property{\n    id: d.id,\n    type: d.type,\n    valueQuantity: d.valueQuantity,\n    valueCode: d.valueCode\n  }\n\ndefine function DeviceResource(device Device, profileURLs List&lt;FHIR.canonical&gt;):\n  device d\n  return Device{\n    id: FHIR.id{value: 'LCR-' + d.id},\n    meta: SharedResource.MetaElement(d, profileURLs),\n    extension: d.extension,\n    definition: d.definition,\n    udiCarrier: DeviceUdiCarrier(d.udiCarrier),\n    status: d.status,\n    statusReason: d.statusReason,\n    distinctIdentifier: d.distinctIdentifier,\n    manufacturer: d.manufacturer,\n    manufactureDate: d.manufactureDate,\n    expirationDate: d.expirationDate,\n    lotNumber: d.lotNumber,\n    serialNumber: d.serialNumber,\n    deviceName: DeviceDeviceName(d.deviceName),\n    modelNumber: d.modelNumber,\n    partNumber: d.partNumber,\n    type: d.type,\n    specialization: DeviceSpecialization(d.specialization),\n    version: DeviceVersion(d.version),\n    property: DeviceProperty(d.property),\n    patient: d.patient,\n    owner: d.owner,\n    contact: d.contact,\n    location: d.location,\n    url: d.url,\n    note: d.note,\n    safety: d.safety,\n    parent: d.parent\n  }\n\ndefine function DiagnosticReportResource(diagnosticReport DiagnosticReport, profileURLs List&lt;FHIR.canonical&gt;):\n  diagnosticReport d\n  return DiagnosticReport{\n    id: FHIR.id{value: 'LCR-' + d.id},\n    meta: SharedResource.MetaElement(d, profileURLs),\n    extension: d.extension,\n    basedOn: d.basedOn,\n    status: d.status,\n    category: d.category,\n    code: d.code,\n    subject: d.subject,\n    encounter: d.encounter,\n    effective: d.effective,\n    issued: d.issued,\n    performer: d.performer,\n    resultsInterpreter: d.resultsInterpreter,\n    specimen: d.specimen,\n    result: d.result,\n    conclusion: d.conclusion,\n    conclusionCode: d.conclusionCode\n  }\n\ndefine function EncounterResource(encounter Encounter, profileURLs List&lt;FHIR.canonical&gt;):\n  encounter e\n  return Encounter{\n    id: FHIR.id{value: 'LCR-' + e.id},\n    meta: SharedResource.MetaElement(e, profileURLs),\n    extension: e.extension,\n    identifier: SharedResource.EncounterIdentifier(e.identifier),\n    status: e.status,\n    statusHistory: SharedResource.EncounterStatusHistory(e.statusHistory),\n    class: e.class,\n    classHistory: SharedResource.EncounterClassHistory(e.classHistory),\n    type: e.type,\n    serviceType: e.serviceType,\n    priority: e.priority,\n    subject: e.subject,\n    period: e.period,\n    length: e.length,\n    reasonCode: e.reasonCode,\n    reasonReference: e.reasonReference,\n    diagnosis: SharedResource.EncounterDiagnosis(e.diagnosis),\n    account: e.account,\n    hospitalization: SharedResource.EncounterHospitalization(e.hospitalization),\n    location: SharedResource.EncounterLocation(e.location),\n    partOf: e.partOf\n  }\n\ndefine function ObservationResource(observation Observation, profileURLs List&lt;FHIR.canonical&gt;):\n  observation o\n  return Observation{\n    id: FHIR.id {value: 'LCR-' + o.id},\n    meta: SharedResource.MetaElement(o, profileURLs),\n    extension: o.extension,\n    partOf: o.partOf,\n    status: o.status,\n    category: o.category,\n    code: o.code,\n    subject: o.subject,\n    focus: o.focus,\n    encounter: o.encounter,\n    effective: o.effective,\n    issued: o.issued,\n    performer: o.performer,\n    value: o.value,\n    dataAbsentReason: o.dataAbsentReason,\n    interpretation: o.interpretation,\n    note: o.note,\n    bodySite: o.bodySite,\n    method: o.method,\n    specimen: o.specimen,\n    device: o.device,\n    referenceRange: SharedResource.ObservationReferenceRange(o.referenceRange),\n    hasMember: o.hasMember,\n    derivedFrom: o.derivedFrom,\n    component: SharedResource.ObservationComponent(o.component)\n  }\n\ndefine function ObservationVitalSignsCoding(coding List&lt;Coding&gt;):\n  coding c\n  return Coding{\n    system: c.system,\n    version: c.version,\n    code: c.code,\n    display: c.display,\n    userSelected: c.userSelected\n  }\n\ndefine function ObservationVitalSignsCategory(category List&lt;CodeableConcept&gt;):\n  category c\n  return CodeableConcept{\n    coding: ObservationVitalSignsCoding(c.coding),\n    text: c.text\n  }\n\ndefine function ObservationVitalSignsComponent(component List&lt;FHIR.Observation.Component&gt;):\n  component c\n  return FHIR.Observation.Component{\n    code: c.code,\n    value: c.value,\n    dataAbsentReason: c.dataAbsentReason,\n    interpretation: c.interpretation,\n    referenceRange: SharedResource.ObservationReferenceRange(c.referenceRange)\n  }\n\ndefine function ObservationVitalSignsResource(observation Observation, profileURLs List&lt;FHIR.canonical&gt;):\n  observation o\n  return Observation{\n    id: FHIR.id {value: 'LCR-' + o.id},\n    meta: SharedResource.MetaElement(o, profileURLs),\n    extension: o.extension,\n    partOf: o.partOf,\n    status: o.status,\n    category: ObservationVitalSignsCategory(o.category),\n    code: o.code,\n    subject: o.subject,\n    focus: o.focus,\n    encounter: o.encounter,\n    effective: o.effective,\n    issued: o.issued,\n    performer: o.performer,\n    value: o.value,\n    dataAbsentReason: o.dataAbsentReason,\n    interpretation: o.interpretation,\n    note: o.note,\n    bodySite: o.bodySite,\n    method: o.method,\n    specimen: o.specimen,\n    device: o.device,\n    referenceRange: SharedResource.ObservationReferenceRange(o.referenceRange),\n    hasMember: o.hasMember,\n    derivedFrom: o.derivedFrom,\n    component: ObservationVitalSignsComponent(o.component)\n  }</code></pre></div>"
  ] ; # 
  fhir:contained ( [
a fhir:Parameters ;
fhir:id [ fhir:v "ach-options" ] ;
    ( fhir:parameter [
fhir:name [ fhir:v "translatorVersion" ] ;
fhir:value [ fhir:v "3.5.1" ]     ] [
fhir:name [ fhir:v "option" ] ;
fhir:value [ fhir:v "EnableDateRangeOptimization" ]     ] [
fhir:name [ fhir:v "option" ] ;
fhir:value [ fhir:v "EnableAnnotations" ]     ] [
fhir:name [ fhir:v "option" ] ;
fhir:value [ fhir:v "EnableLocators" ]     ] [
fhir:name [ fhir:v "option" ] ;
fhir:value [ fhir:v "DisableListDemotion" ]     ] [
fhir:name [ fhir:v "option" ] ;
fhir:value [ fhir:v "DisableListPromotion" ]     ] [
fhir:name [ fhir:v "analyzeDataRequirements" ] ;
fhir:value [ fhir:v "false"^^xsd:boolean ]     ] [
fhir:name [ fhir:v "collapseDataRequirements" ] ;
fhir:value [ fhir:v "true"^^xsd:boolean ]     ] [
fhir:name [ fhir:v "compatibilityLevel" ] ;
fhir:value [ fhir:v "1.5" ]     ] [
fhir:name [ fhir:v "enableCqlOnly" ] ;
fhir:value [ fhir:v "false"^^xsd:boolean ]     ] [
fhir:name [ fhir:v "errorLevel" ] ;
fhir:value [ fhir:v "Info" ]     ] [
fhir:name [ fhir:v "signatureLevel" ] ;
fhir:value [ fhir:v "None" ]     ] [
fhir:name [ fhir:v "validateUnits" ] ;
fhir:value [ fhir:v "true"^^xsd:boolean ]     ] [
fhir:name [ fhir:v "verifyOnly" ] ;
fhir:value [ fhir:v "false"^^xsd:boolean ]     ] )
  ] ) ; # 
  fhir:extension ( [
fhir:url [ fhir:v "http://hl7.org/fhir/StructureDefinition/cqf-cqlOptions"^^xsd:anyURI ] ;
fhir:value [
a fhir:Reference ;
fhir:reference [ fhir:v "#ach-options" ]     ]
  ] ) ; # 
  fhir:url [ fhir:v "http://hl7.org/fhir/us/nhsn-dqm/Library/NHSNdQMAcuteCareHospitalInitialPopulationLibrary"^^xsd:anyURI] ; # 
  fhir:identifier ( [
fhir:system [ fhir:v "urn:ietf:rfc:3986"^^xsd:anyURI ] ;
fhir:value [ fhir:v "urn:oid:2.25.316204395913842452684237438142819890580.28.2" ]
  ] ) ; # 
  fhir:version [ fhir:v "1.0.0-ballot"] ; # 
  fhir:name [ fhir:v "NHSNdQMAcuteCareHospitalInitialPopulation"] ; # 
  fhir:status [ fhir:v "active"] ; # 
  fhir:type [
    ( fhir:coding [
fhir:system [ fhir:v "http://terminology.hl7.org/CodeSystem/library-type"^^xsd:anyURI ] ;
fhir:code [ fhir:v "logic-library" ]     ] )
  ] ; # 
  fhir:date [ fhir:v "2024-08-12T17:13:57+00:00"^^xsd:dateTime] ; # 
  fhir:publisher [ fhir:v "HL7 International / Public Health"] ; # 
  fhir:contact ( [
fhir:name [ fhir:v "HL7 International / Public Health" ] ;
    ( fhir:telecom [
fhir:system [ fhir:v "url" ] ;
fhir:value [ fhir:v "http://www.hl7.org/Special/committees/pher" ]     ] )
  ] ) ; # 
  fhir:jurisdiction ( [
    ( fhir:coding [
fhir:system [ fhir:v "urn:iso:std:iso:3166"^^xsd:anyURI ] ;
fhir:code [ fhir:v "US" ] ;
fhir:display [ fhir:v "United States of America" ]     ] )
  ] ) ; # 
  fhir:relatedArtifact ( [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "FHIR model information" ] ;
fhir:resource [
fhir:v "http://fhir.org/guides/cqf/common/Library/FHIR-ModelInfo|4.0.1"^^xsd:anyURI ;
fhir:link <http://fhir.org/guides/cqf/common/Library/FHIR-ModelInfo|4.0.1>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Library FHIRHelpers" ] ;
fhir:resource [
fhir:v "http://fhir.org/guides/cqf/common/Library/FHIRHelpers|4.0.1"^^xsd:anyURI ;
fhir:link <http://fhir.org/guides/cqf/common/Library/FHIRHelpers|4.0.1>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Library Global" ] ;
fhir:resource [
fhir:v "http://hl7.org/fhir/us/cqfmeasures/Library/MATGlobalCommonFunctions"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/us/cqfmeasures/Library/MATGlobalCommonFunctions>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Library SDE" ] ;
fhir:resource [
fhir:v "http://hl7.org/fhir/us/cqfmeasures/Library/SupplementalDataElements"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/us/cqfmeasures/Library/SupplementalDataElements>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Code system ActCode" ] ;
fhir:resource [
fhir:v "http://terminology.hl7.org/CodeSystem/v3-ActCode"^^xsd:anyURI ;
fhir:link <http://terminology.hl7.org/CodeSystem/v3-ActCode>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Code system Observation Category" ] ;
fhir:resource [
fhir:v "http://terminology.hl7.org/CodeSystem/observation-category"^^xsd:anyURI ;
fhir:link <http://terminology.hl7.org/CodeSystem/observation-category>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Code system LOINC" ] ;
fhir:resource [
fhir:v "http://loinc.org"^^xsd:anyURI ;
fhir:link <http://loinc.org>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Code system V2-0074" ] ;
fhir:resource [
fhir:v "http://terminology.hl7.org/CodeSystem/v2-0074"^^xsd:anyURI ;
fhir:link <http://terminology.hl7.org/CodeSystem/v2-0074>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Value set Inpatient, Emergency, and Observation Locations" ] ;
fhir:resource [
fhir:v "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.265"^^xsd:anyURI ;
fhir:link <http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.265>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Value set Emergency Department Visit" ] ;
fhir:resource [
fhir:v "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292"^^xsd:anyURI ;
fhir:link <http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Value set Encounter Inpatient" ] ;
fhir:resource [
fhir:v "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.307"^^xsd:anyURI ;
fhir:link <http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.307>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Value set Observation Services" ] ;
fhir:resource [
fhir:v "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.143"^^xsd:anyURI ;
fhir:link <http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.143>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Value set NHSN Inpatient Encounter Class Codes" ] ;
fhir:resource [
fhir:v "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.274"^^xsd:anyURI ;
fhir:link <http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.274>     ]
  ] ) ; # 
  fhir:parameter ( [
fhir:name [ fhir:v "Measurement Period" ] ;
fhir:use [ fhir:v "in" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "Period" ]
  ] [
fhir:name [ fhir:v "Patient" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "Patient" ]
  ] [
fhir:name [ fhir:v "Qualifying Encounters During Measurement Period" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "Encounter" ]
  ] [
fhir:name [ fhir:v "Encounters" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "Encounter" ]
  ] [
fhir:name [ fhir:v "Encounters with Patient Hospital Locations" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "Encounter" ]
  ] [
fhir:name [ fhir:v "Initial Population" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "Encounter" ]
  ] [
fhir:name [ fhir:v "DiagnosticReports" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "DiagnosticReport" ]
  ] [
fhir:name [ fhir:v "Observations" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "Observation" ]
  ] [
fhir:name [ fhir:v "IP Encounters Overlap Measurement Period" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "Encounter" ]
  ] [
fhir:name [ fhir:v "Get Locations from IP Encounters in Measurement Period" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "Location" ]
  ] [
fhir:name [ fhir:v "SDE Condition" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "Condition" ]
  ] [
fhir:name [ fhir:v "SDE Device" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "Device" ]
  ] [
fhir:name [ fhir:v "SDE DiagnosticReport Lab" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "DiagnosticReport" ]
  ] [
fhir:name [ fhir:v "SDE DiagnosticReport Note" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "DiagnosticReport" ]
  ] [
fhir:name [ fhir:v "SDE DiagnosticReport Others" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "DiagnosticReport" ]
  ] [
fhir:name [ fhir:v "SDE Encounter" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "Encounter" ]
  ] [
fhir:name [ fhir:v "SDE Location" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "Location" ]
  ] [
fhir:name [ fhir:v "SDE Medication Administration" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "MedicationAdministration" ]
  ] [
fhir:name [ fhir:v "SDE Medication Request" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "MedicationRequest" ]
  ] [
fhir:name [ fhir:v "SDE Medication" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "Medication" ]
  ] [
fhir:name [ fhir:v "SDE Observation Lab Category" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "Observation" ]
  ] [
fhir:name [ fhir:v "SDE Observation Vital Signs Category" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "Observation" ]
  ] [
fhir:name [ fhir:v "SDE Observation Category" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "Observation" ]
  ] [
fhir:name [ fhir:v "SDE Coverage" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "Coverage" ]
  ] [
fhir:name [ fhir:v "SDE Procedure" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "Procedure" ]
  ] [
fhir:name [ fhir:v "SDE Specimen" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "Specimen" ]
  ] [
fhir:name [ fhir:v "SDE Service Request" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "ServiceRequest" ]
  ] [
fhir:name [ fhir:v "SDE Minimal Patient" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "Patient" ]
  ] ) ; # 
  fhir:dataRequirement ( [
fhir:type [ fhir:v "Patient" ] ;
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/StructureDefinition/Patient"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Patient>     ] ) ;
    ( fhir:mustSupport [ fhir:v "id" ] [ fhir:v "identifier" ] [ fhir:v "active" ] [ fhir:v "name" ] [ fhir:v "telecom" ] [ fhir:v "gender" ] [ fhir:v "birthDate" ] [ fhir:v "deceased" ] [ fhir:v "address" ] [ fhir:v "maritalStatus" ] [ fhir:v "multipleBirth" ] [ fhir:v "photo" ] [ fhir:v "contact" ] [ fhir:v "communication" ] [ fhir:v "generalPractitioner" ] [ fhir:v "managingOrganization" ] [ fhir:v "link" ] )
  ] [
fhir:type [ fhir:v "Encounter" ] ;
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/StructureDefinition/Encounter"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Encounter>     ] ) ;
    ( fhir:mustSupport [ fhir:v "type" ] [ fhir:v "status" ] [ fhir:v "period" ] [ fhir:v "location" ] [ fhir:v "id" ] [ fhir:v "extension" ] [ fhir:v "identifier" ] [ fhir:v "statusHistory" ] [ fhir:v "class" ] [ fhir:v "classHistory" ] [ fhir:v "serviceType" ] [ fhir:v "priority" ] [ fhir:v "subject" ] [ fhir:v "length" ] [ fhir:v "reasonCode" ] [ fhir:v "reasonReference" ] [ fhir:v "diagnosis" ] [ fhir:v "account" ] [ fhir:v "hospitalization" ] [ fhir:v "partOf" ] ) ;
    ( fhir:codeFilter [
fhir:path [ fhir:v "type" ] ;
fhir:valueSet [
fhir:v "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.307"^^xsd:anyURI ;
fhir:link <http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.307>       ]     ] )
  ] [
fhir:type [ fhir:v "Encounter" ] ;
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/StructureDefinition/Encounter"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Encounter>     ] ) ;
    ( fhir:mustSupport [ fhir:v "type" ] [ fhir:v "status" ] [ fhir:v "period" ] [ fhir:v "location" ] [ fhir:v "id" ] [ fhir:v "extension" ] [ fhir:v "identifier" ] [ fhir:v "statusHistory" ] [ fhir:v "class" ] [ fhir:v "classHistory" ] [ fhir:v "serviceType" ] [ fhir:v "priority" ] [ fhir:v "subject" ] [ fhir:v "length" ] [ fhir:v "reasonCode" ] [ fhir:v "reasonReference" ] [ fhir:v "diagnosis" ] [ fhir:v "account" ] [ fhir:v "hospitalization" ] [ fhir:v "partOf" ] ) ;
    ( fhir:codeFilter [
fhir:path [ fhir:v "type" ] ;
fhir:valueSet [
fhir:v "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292"^^xsd:anyURI ;
fhir:link <http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292>       ]     ] )
  ] [
fhir:type [ fhir:v "Encounter" ] ;
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/StructureDefinition/Encounter"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Encounter>     ] ) ;
    ( fhir:mustSupport [ fhir:v "type" ] [ fhir:v "status" ] [ fhir:v "period" ] [ fhir:v "location" ] [ fhir:v "id" ] [ fhir:v "extension" ] [ fhir:v "identifier" ] [ fhir:v "statusHistory" ] [ fhir:v "class" ] [ fhir:v "classHistory" ] [ fhir:v "serviceType" ] [ fhir:v "priority" ] [ fhir:v "subject" ] [ fhir:v "length" ] [ fhir:v "reasonCode" ] [ fhir:v "reasonReference" ] [ fhir:v "diagnosis" ] [ fhir:v "account" ] [ fhir:v "hospitalization" ] [ fhir:v "partOf" ] ) ;
    ( fhir:codeFilter [
fhir:path [ fhir:v "type" ] ;
fhir:valueSet [
fhir:v "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.143"^^xsd:anyURI ;
fhir:link <http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.143>       ]     ] )
  ] [
fhir:type [ fhir:v "Encounter" ] ;
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/StructureDefinition/Encounter"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Encounter>     ] ) ;
    ( fhir:mustSupport [ fhir:v "class" ] [ fhir:v "status" ] [ fhir:v "period" ] [ fhir:v "location" ] [ fhir:v "id" ] [ fhir:v "extension" ] [ fhir:v "identifier" ] [ fhir:v "statusHistory" ] [ fhir:v "classHistory" ] [ fhir:v "type" ] [ fhir:v "serviceType" ] [ fhir:v "priority" ] [ fhir:v "subject" ] [ fhir:v "length" ] [ fhir:v "reasonCode" ] [ fhir:v "reasonReference" ] [ fhir:v "diagnosis" ] [ fhir:v "account" ] [ fhir:v "hospitalization" ] [ fhir:v "partOf" ] ) ;
    ( fhir:codeFilter [
fhir:path [ fhir:v "class" ] ;
fhir:valueSet [
fhir:v "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.274"^^xsd:anyURI ;
fhir:link <http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.274>       ]     ] )
  ] [
fhir:type [ fhir:v "Encounter" ] ;
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/StructureDefinition/Encounter"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Encounter>     ] ) ;
    ( fhir:mustSupport [ fhir:v "status" ] [ fhir:v "period" ] [ fhir:v "location" ] [ fhir:v "id" ] [ fhir:v "extension" ] [ fhir:v "identifier" ] [ fhir:v "statusHistory" ] [ fhir:v "class" ] [ fhir:v "classHistory" ] [ fhir:v "type" ] [ fhir:v "serviceType" ] [ fhir:v "priority" ] [ fhir:v "subject" ] [ fhir:v "length" ] [ fhir:v "reasonCode" ] [ fhir:v "reasonReference" ] [ fhir:v "diagnosis" ] [ fhir:v "account" ] [ fhir:v "hospitalization" ] [ fhir:v "partOf" ] )
  ] [
fhir:type [ fhir:v "Location" ] ;
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/StructureDefinition/Location"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Location>     ] ) ;
    ( fhir:mustSupport [ fhir:v "id" ] [ fhir:v "extension" ] [ fhir:v "status" ] [ fhir:v "operationalStatus" ] [ fhir:v "name" ] [ fhir:v "alias" ] [ fhir:v "description" ] [ fhir:v "mode" ] [ fhir:v "type" ] [ fhir:v "telecom" ] [ fhir:v "address" ] [ fhir:v "physicalType" ] [ fhir:v "position" ] [ fhir:v "managingOrganization" ] [ fhir:v "partOf" ] [ fhir:v "hoursOfOperation" ] [ fhir:v "availabilityExceptions" ] [ fhir:v "endpoint" ] )
  ] [
fhir:type [ fhir:v "DiagnosticReport" ] ;
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/StructureDefinition/DiagnosticReport"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/DiagnosticReport>     ] ) ;
    ( fhir:mustSupport [ fhir:v "id" ] [ fhir:v "extension" ] [ fhir:v "basedOn" ] [ fhir:v "status" ] [ fhir:v "category" ] [ fhir:v "code" ] [ fhir:v "subject" ] [ fhir:v "encounter" ] [ fhir:v "effective" ] [ fhir:v "issued" ] [ fhir:v "performer" ] [ fhir:v "resultsInterpreter" ] [ fhir:v "specimen" ] [ fhir:v "result" ] [ fhir:v "conclusion" ] [ fhir:v "conclusionCode" ] )
  ] [
fhir:type [ fhir:v "Observation" ] ;
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/StructureDefinition/Observation"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Observation>     ] ) ;
    ( fhir:mustSupport [ fhir:v "id" ] [ fhir:v "extension" ] [ fhir:v "basedOn" ] [ fhir:v "partOf" ] [ fhir:v "status" ] [ fhir:v "category" ] [ fhir:v "code" ] [ fhir:v "subject" ] [ fhir:v "focus" ] [ fhir:v "encounter" ] [ fhir:v "effective" ] [ fhir:v "issued" ] [ fhir:v "performer" ] [ fhir:v "value" ] [ fhir:v "dataAbsentReason" ] [ fhir:v "interpretation" ] [ fhir:v "note" ] [ fhir:v "bodySite" ] [ fhir:v "method" ] [ fhir:v "specimen" ] [ fhir:v "device" ] [ fhir:v "referenceRange" ] [ fhir:v "hasMember" ] [ fhir:v "derivedFrom" ] [ fhir:v "component" ] )
  ] [
fhir:type [ fhir:v "Condition" ] ;
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/StructureDefinition/Condition"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Condition>     ] ) ;
    ( fhir:mustSupport [ fhir:v "id" ] [ fhir:v "extension" ] [ fhir:v "clinicalStatus" ] [ fhir:v "verificationStatus" ] [ fhir:v "category" ] [ fhir:v "severity" ] [ fhir:v "code" ] [ fhir:v "bodySite" ] [ fhir:v "subject" ] [ fhir:v "encounter" ] [ fhir:v "onset" ] [ fhir:v "abatement" ] [ fhir:v "recordedDate" ] [ fhir:v "stage" ] [ fhir:v "evidence" ] [ fhir:v "note" ] )
  ] [
fhir:type [ fhir:v "Device" ] ;
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/StructureDefinition/Device"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Device>     ] ) ;
    ( fhir:mustSupport [ fhir:v "id" ] [ fhir:v "extension" ] [ fhir:v "definition" ] [ fhir:v "udiCarrier" ] [ fhir:v "status" ] [ fhir:v "statusReason" ] [ fhir:v "distinctIdentifier" ] [ fhir:v "manufacturer" ] [ fhir:v "manufactureDate" ] [ fhir:v "expirationDate" ] [ fhir:v "lotNumber" ] [ fhir:v "serialNumber" ] [ fhir:v "deviceName" ] [ fhir:v "modelNumber" ] [ fhir:v "partNumber" ] [ fhir:v "type" ] [ fhir:v "specialization" ] [ fhir:v "version" ] [ fhir:v "property" ] [ fhir:v "patient" ] [ fhir:v "owner" ] [ fhir:v "contact" ] [ fhir:v "location" ] [ fhir:v "url" ] [ fhir:v "note" ] [ fhir:v "safety" ] [ fhir:v "parent" ] )
  ] [
fhir:type [ fhir:v "MedicationAdministration" ] ;
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/StructureDefinition/MedicationAdministration"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/MedicationAdministration>     ] ) ;
    ( fhir:mustSupport [ fhir:v "effective" ] [ fhir:v "id" ] [ fhir:v "extension" ] [ fhir:v "instantiates" ] [ fhir:v "partOf" ] [ fhir:v "status" ] [ fhir:v "statusReason" ] [ fhir:v "category" ] [ fhir:v "medication" ] [ fhir:v "subject" ] [ fhir:v "context" ] [ fhir:v "supportingInformation" ] [ fhir:v "performer" ] [ fhir:v "reasonCode" ] [ fhir:v "reasonReference" ] [ fhir:v "request" ] [ fhir:v "device" ] [ fhir:v "note" ] [ fhir:v "dosage" ] [ fhir:v "eventHistory" ] )
  ] [
fhir:type [ fhir:v "MedicationRequest" ] ;
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/StructureDefinition/MedicationRequest"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/MedicationRequest>     ] ) ;
    ( fhir:mustSupport [ fhir:v "authoredOn" ] [ fhir:v "id" ] [ fhir:v "extension" ] [ fhir:v "status" ] [ fhir:v "statusReason" ] [ fhir:v "intent" ] [ fhir:v "category" ] [ fhir:v "priority" ] [ fhir:v "doNotPerform" ] [ fhir:v "reported" ] [ fhir:v "medication" ] [ fhir:v "subject" ] [ fhir:v "encounter" ] [ fhir:v "requester" ] [ fhir:v "recorder" ] [ fhir:v "reasonCode" ] [ fhir:v "reasonReference" ] [ fhir:v "instantiatesCanonical" ] [ fhir:v "instantiatesUri" ] [ fhir:v "courseOfTherapyType" ] [ fhir:v "dosageInstruction" ] )
  ] [
fhir:type [ fhir:v "Medication" ] ;
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/StructureDefinition/Medication"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Medication>     ] ) ;
    ( fhir:mustSupport [ fhir:v "id" ] [ fhir:v "extension" ] [ fhir:v "code" ] [ fhir:v "status" ] [ fhir:v "manufacturer" ] [ fhir:v "form" ] [ fhir:v "amount" ] [ fhir:v "ingredient" ] [ fhir:v "batch" ] )
  ] [
fhir:type [ fhir:v "Coverage" ] ;
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/StructureDefinition/Coverage"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Coverage>     ] ) ;
    ( fhir:mustSupport [ fhir:v "period" ] [ fhir:v "id" ] [ fhir:v "extension" ] [ fhir:v "status" ] [ fhir:v "type" ] [ fhir:v "policyHolder" ] [ fhir:v "subscriber" ] [ fhir:v "subscriberId" ] [ fhir:v "beneficiary" ] [ fhir:v "dependent" ] [ fhir:v "relationship" ] [ fhir:v "payor" ] [ fhir:v "class" ] [ fhir:v "order" ] [ fhir:v "network" ] [ fhir:v "subrogation" ] [ fhir:v "contract" ] )
  ] [
fhir:type [ fhir:v "Procedure" ] ;
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/StructureDefinition/Procedure"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Procedure>     ] ) ;
    ( fhir:mustSupport [ fhir:v "performed" ] [ fhir:v "id" ] [ fhir:v "extension" ] [ fhir:v "instantiatesCanonical" ] [ fhir:v "instantiatesUri" ] [ fhir:v "basedOn" ] [ fhir:v "partOf" ] [ fhir:v "status" ] [ fhir:v "statusReason" ] [ fhir:v "category" ] [ fhir:v "code" ] [ fhir:v "subject" ] [ fhir:v "encounter" ] [ fhir:v "recorder" ] [ fhir:v "asserter" ] [ fhir:v "performer" ] [ fhir:v "location" ] [ fhir:v "reasonCode" ] [ fhir:v "reasonReference" ] [ fhir:v "bodySite" ] [ fhir:v "outcome" ] [ fhir:v "report" ] [ fhir:v "complication" ] [ fhir:v "complicationDetail" ] [ fhir:v "followUp" ] [ fhir:v "note" ] [ fhir:v "focalDevice" ] [ fhir:v "usedReference" ] [ fhir:v "usedCode" ] )
  ] [
fhir:type [ fhir:v "Specimen" ] ;
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/StructureDefinition/Specimen"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Specimen>     ] ) ;
    ( fhir:mustSupport [ fhir:v "collection" ] [ fhir:v "collection.collected" ] [ fhir:v "id" ] [ fhir:v "extension" ] [ fhir:v "identifier" ] [ fhir:v "accessionIdentifier" ] [ fhir:v "status" ] [ fhir:v "type" ] [ fhir:v "subject" ] [ fhir:v "receivedTime" ] [ fhir:v "parent" ] [ fhir:v "request" ] [ fhir:v "processing" ] [ fhir:v "container" ] [ fhir:v "condition" ] [ fhir:v "note" ] )
  ] [
fhir:type [ fhir:v "ServiceRequest" ] ;
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/StructureDefinition/ServiceRequest"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/ServiceRequest>     ] ) ;
    ( fhir:mustSupport [ fhir:v "authoredOn" ] [ fhir:v "id" ] [ fhir:v "extension" ] [ fhir:v "instantiatesCanonical" ] [ fhir:v "instantiatesUri" ] [ fhir:v "basedOn" ] [ fhir:v "replaces" ] [ fhir:v "requisition" ] [ fhir:v "status" ] [ fhir:v "intent" ] [ fhir:v "category" ] [ fhir:v "priority" ] [ fhir:v "doNotPerform" ] [ fhir:v "code" ] [ fhir:v "orderDetail" ] [ fhir:v "quantity" ] [ fhir:v "subject" ] [ fhir:v "encounter" ] [ fhir:v "occurrence" ] [ fhir:v "asNeeded" ] [ fhir:v "requester" ] [ fhir:v "performerType" ] [ fhir:v "performer" ] [ fhir:v "locationCode" ] [ fhir:v "locationReference" ] [ fhir:v "reasonCode" ] [ fhir:v "reasonReference" ] [ fhir:v "insurance" ] [ fhir:v "supportingInfo" ] [ fhir:v "specimen" ] [ fhir:v "bodySite" ] [ fhir:v "note" ] [ fhir:v "patientInstruction" ] [ fhir:v "relevantHistory" ] )
  ] ) ; # 
  fhir:content ( [
fhir:contentType [ fhir:v "text/cql" ] ;
fhir:data [ fhir:v "bGlicmFyeSBOSFNOZFFNQWN1dGVDYXJlSG9zcGl0YWxJbml0aWFsUG9wdWxhdGlvbiB2ZXJzaW9uICcwLjAuMDE0JwoKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnIGNhbGxlZCBGSElSSGVscGVycwppbmNsdWRlIE1BVEdsb2JhbENvbW1vbkZ1bmN0aW9uc0ZISVI0IHZlcnNpb24gJzYuMS4wMDAnIGNhbGxlZCBHbG9iYWwKaW5jbHVkZSBTdXBwbGVtZW50YWxEYXRhRWxlbWVudHNGSElSNCB2ZXJzaW9uICcyLjAuMDAwJyBjYWxsZWQgU0RFCmluY2x1ZGUgU2hhcmVkUmVzb3VyY2VDcmVhdGlvbiB2ZXJzaW9uICcwLjEuMDA1JyBjYWxsZWQgU2hhcmVkUmVzb3VyY2UKCmNvZGVzeXN0ZW0gIkFjdENvZGUiOiAnaHR0cDovL3Rlcm1pbm9sb2d5LmhsNy5vcmcvQ29kZVN5c3RlbS92My1BY3RDb2RlJwpjb2Rlc3lzdGVtICJPYnNlcnZhdGlvbiBDYXRlZ29yeSI6ICdodHRwOi8vdGVybWlub2xvZ3kuaGw3Lm9yZy9Db2RlU3lzdGVtL29ic2VydmF0aW9uLWNhdGVnb3J5Jwpjb2Rlc3lzdGVtICJMT0lOQyI6ICdodHRwOi8vbG9pbmMub3JnJyAKY29kZXN5c3RlbSAiVjItMDA3NCI6ICdodHRwOi8vdGVybWlub2xvZ3kuaGw3Lm9yZy9Db2RlU3lzdGVtL3YyLTAwNzQnCgp2YWx1ZXNldCAiSW5wYXRpZW50LCBFbWVyZ2VuY3ksIGFuZCBPYnNlcnZhdGlvbiBMb2NhdGlvbnMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMDQ2LjI2NScKdmFsdWVzZXQgIkVtZXJnZW5jeSBEZXBhcnRtZW50IFZpc2l0IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjExNy4xLjcuMS4yOTInCnZhbHVlc2V0ICJFbmNvdW50ZXIgSW5wYXRpZW50IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjY2Ni41LjMwNycKdmFsdWVzZXQgIk9ic2VydmF0aW9uIFNlcnZpY2VzIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTExMS4xNDMnCnZhbHVlc2V0ICJOSFNOIElucGF0aWVudCBFbmNvdW50ZXIgQ2xhc3MgQ29kZXMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMDQ2LjI3NCcKCi8vY29kZSBmb3IgT2JzZXJ2YXRpb24gQ2F0ZWdvcnkKY29kZSAibGFib3JhdG9yeSI6ICdsYWJvcmF0b3J5JyBmcm9tICJPYnNlcnZhdGlvbiBDYXRlZ29yeSIgZGlzcGxheSAnTGFib3JhdG9yeScKY29kZSAic29jaWFsLWhpc3RvcnkiOiAnc29jaWFsLWhpc3RvcnknIGZyb20gIk9ic2VydmF0aW9uIENhdGVnb3J5IiBkaXNwbGF5ICdTb2NpYWwgSGlzdG9yeScKY29kZSAidml0YWwtc2lnbnMiOiAndml0YWwtc2lnbnMnIGZyb20gIk9ic2VydmF0aW9uIENhdGVnb3J5IiBkaXNwbGF5ICdWaXRhbCBTaWducycKY29kZSAiaW1hZ2luZyI6ICdpbWFnaW5nJyBmcm9tICJPYnNlcnZhdGlvbiBDYXRlZ29yeSIgZGlzcGxheSAnSW1hZ2luZycKY29kZSAicHJvY2VkdXJlIjogJ3Byb2NlZHVyZScgZnJvbSAiT2JzZXJ2YXRpb24gQ2F0ZWdvcnkiIGRpc3BsYXkgJ1Byb2NlZHVyZScKY29kZSAic3VydmV5IjogJ3N1cnZleScgZnJvbSAiT2JzZXJ2YXRpb24gQ2F0ZWdvcnkiIGRpc3BsYXkgJ1N1cnZleScKCi8vY29kZSBmb3IgRGlhZ25vc3RpYyBSZXBvcnQgQ2F0ZWdvcnkKY29kZSAiTEFCIjogJ0xBQicgZnJvbSAiVjItMDA3NCIgZGlzcGxheSAnTGFib3JhdG9yeScKY29kZSAiUmFkaW9sb2d5IjogJ0xQMjk2ODQtNScgZnJvbSAiTE9JTkMiIGRpc3BsYXkgJ1JhZGlvbG9neScKY29kZSAiUGF0aG9sb2d5IjogJ0xQNzgzOS02JyBmcm9tICJMT0lOQyIgZGlzcGxheSAnUGF0aG9sb2d5Jwpjb2RlICJDYXJkaW9sb2d5IjogJ0xQMjk3MDgtMicgZnJvbSAiTE9JTkMiIGRpc3BsYXkgJ0NhcmRpb2xvZ3knCgpwYXJhbWV0ZXIgIk1lYXN1cmVtZW50IFBlcmlvZCIgCiAgICBkZWZhdWx0IEludGVydmFsW0AyMDI0LTAxLTAxVDAwOjAwOjAwLjAsIEAyMDI0LTAxLTMxVDAwOjAwOjAwLjApCgpjb250ZXh0IFBhdGllbnQgCgpkZWZpbmUgIlF1YWxpZnlpbmcgRW5jb3VudGVycyBEdXJpbmcgTWVhc3VyZW1lbnQgUGVyaW9kIjoKICggW0VuY291bnRlcjogIkVuY291bnRlciBJbnBhdGllbnQiXQogIHVuaW9uIFtFbmNvdW50ZXI6ICJFbWVyZ2VuY3kgRGVwYXJ0bWVudCBWaXNpdCJdCiAgdW5pb24gW0VuY291bnRlcjogIk9ic2VydmF0aW9uIFNlcnZpY2VzIl0KICB1bmlvbiBbRW5jb3VudGVyOiBjbGFzcyBpbiAiTkhTTiBJbnBhdGllbnQgRW5jb3VudGVyIENsYXNzIENvZGVzIl0pIFF1YWxpZnlpbmdFbmNvdW50ZXJzCiAgd2hlcmUgUXVhbGlmeWluZ0VuY291bnRlcnMuc3RhdHVzIGluIHsnaW4tcHJvZ3Jlc3MnLCAnZmluaXNoZWQnLCAndHJpYWdlZCcsICdvbmxlYXZlJywgJ2VudGVyZWQtaW4tZXJyb3InfQogICAgYW5kIFF1YWxpZnlpbmdFbmNvdW50ZXJzLnBlcmlvZCBvdmVybGFwcyAiTWVhc3VyZW1lbnQgUGVyaW9kIiAKCmRlZmluZSAiRW5jb3VudGVycyB3aXRoIFBhdGllbnQgSG9zcGl0YWwgTG9jYXRpb25zIjoKICAiRW5jb3VudGVycyIgRW5jb3VudGVycwogIHdoZXJlIGV4aXN0cygKICAgIEVuY291bnRlcnMubG9jYXRpb24gRW5jb3VudGVyTG9jYXRpb24KICAgIHdoZXJlIEdsb2JhbC5HZXRMb2NhdGlvbihFbmNvdW50ZXJMb2NhdGlvbi5sb2NhdGlvbikudHlwZSBpbiAiSW5wYXRpZW50LCBFbWVyZ2VuY3ksIGFuZCBPYnNlcnZhdGlvbiBMb2NhdGlvbnMiCiAgICAgIGFuZCBFbmNvdW50ZXJMb2NhdGlvbi5wZXJpb2Qgb3ZlcmxhcHMgRW5jb3VudGVycy5wZXJpb2QKICApCiAgYW5kIEVuY291bnRlcnMuc3RhdHVzIGluIHsnaW4tcHJvZ3Jlc3MnLCAnZmluaXNoZWQnLCAndHJpYWdlZCcsICdvbmxlYXZlJywgJ2VudGVyZWQtaW4tZXJyb3InfQogIGFuZCBFbmNvdW50ZXJzLnBlcmlvZCBvdmVybGFwcyAiTWVhc3VyZW1lbnQgUGVyaW9kIgoKZGVmaW5lICJJbml0aWFsIFBvcHVsYXRpb24iOgogICJRdWFsaWZ5aW5nIEVuY291bnRlcnMgRHVyaW5nIE1lYXN1cmVtZW50IFBlcmlvZCIKICB1bmlvbiAiRW5jb3VudGVycyB3aXRoIFBhdGllbnQgSG9zcGl0YWwgTG9jYXRpb25zIgoKZGVmaW5lICJFbmNvdW50ZXJzIjoKICBbRW5jb3VudGVyXQoKZGVmaW5lICJEaWFnbm9zdGljUmVwb3J0cyI6CiAgW0RpYWdub3N0aWNSZXBvcnRdCgpkZWZpbmUgIk9ic2VydmF0aW9ucyI6CiAgW09ic2VydmF0aW9uXQoKLy9Eb3VibGUgY2hlY2tpbmcgZm9yIElQJ3MgcGVyaW9kIGR1cmluZyBNUCBhcyBJUCBpcyBjcmVhdGVkIG91dCBvZiBxdWFsaWZ5aW5nIGVuY291bnRlcnMsIHdoaWNoIGNoZWNrcyBmb3IgaXQsIAovL2FuZCBlbmNvdW50ZXIncyBsb2NhdGlvbnMsIHdoaWNoIGRvZXNuJ3QKZGVmaW5lICJJUCBFbmNvdW50ZXJzIE92ZXJsYXAgTWVhc3VyZW1lbnQgUGVyaW9kIjoKICAiSW5pdGlhbCBQb3B1bGF0aW9uIiBJUAogIHdoZXJlIElQLnBlcmlvZCBvdmVybGFwcyAiTWVhc3VyZW1lbnQgUGVyaW9kIgoKZGVmaW5lICJHZXQgTG9jYXRpb25zIGZyb20gSVAgRW5jb3VudGVycyBpbiBNZWFzdXJlbWVudCBQZXJpb2QiOgogIGZsYXR0ZW4oIklQIEVuY291bnRlcnMgT3ZlcmxhcCBNZWFzdXJlbWVudCBQZXJpb2QiIEVuY291bnRlcnMKICBsZXQgbG9jYXRpb25FbGVtZW50czogRW5jb3VudGVycy5sb2NhdGlvbgogIHJldHVybgogICAgbG9jYXRpb25FbGVtZW50cyBMRQogICAgbGV0IGxvY2F0aW9uUmVmZXJlbmNlOiBMRS5sb2NhdGlvbgogICAgcmV0dXJuIEdsb2JhbC5HZXRMb2NhdGlvbihsb2NhdGlvblJlZmVyZW5jZSkpCgovLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLy9TdXBwbGVtZW50YWwgRGF0YSBFbGVtZW50Ci8vV2hlbiBGSElSLmNhbm9uaWNhbCB2YWx1ZSBpcyBwcmVzZW50LCBVUyBDb3JlIDMuMS4xIHByb2ZpbGVzIGFyZSB1c2VkCi8vV2hlbiBGSElSLmNhbm9uaWNhbCB2YWx1ZSBpcyBub3QgcHJlc2VudCwgRkhJUiBCYXNlIHByb2ZpbGVzIGFyZSB1c2VkCi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkZWZpbmUgIlNERSBDb25kaXRpb24iOgogIFtDb25kaXRpb25dIENvbmRpdGlvbnMgCiAgd2hlcmUgZXhpc3RzKCJJbml0aWFsIFBvcHVsYXRpb24iKQogIHJldHVybiBTaGFyZWRSZXNvdXJjZS5Db25kaXRpb25SZXNvdXJjZShDb25kaXRpb25zLAogIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly9obDcub3JnL2ZoaXIvdXMvbmhzbi1kcW0vU3RydWN0dXJlRGVmaW5pdGlvbi9hY2gtY29uZGl0aW9uJ319KQoKZGVmaW5lICJTREUgRGV2aWNlIjoKICBbRGV2aWNlXSBEZXZpY2VzIAogIHdoZXJlIGV4aXN0cygiSW5pdGlhbCBQb3B1bGF0aW9uIikKICByZXR1cm4gRGV2aWNlUmVzb3VyY2UoRGV2aWNlcywKICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vaGw3Lm9yZy9maGlyL3VzL25oc24tZHFtL1N0cnVjdHVyZURlZmluaXRpb24vYWNoLWRldmljZSd9fSkKCmRlZmluZSAiU0RFIERpYWdub3N0aWNSZXBvcnQgTGFiIjoKICAiRGlhZ25vc3RpY1JlcG9ydHMiIERpYWdub3N0aWNSZXBvcnRzCiAgd2hlcmUgKGV4aXN0cyhEaWFnbm9zdGljUmVwb3J0cy5jYXRlZ29yeSBDYXRlZ29yeSB3aGVyZSBDYXRlZ29yeSB+ICJMQUIiKQogICAgYW5kIGV4aXN0cygKICAgICAgIkluaXRpYWwgUG9wdWxhdGlvbiIgSVAKICAgICAgd2hlcmUgR2xvYmFsLiJOb3JtYWxpemUgSW50ZXJ2YWwiKERpYWdub3N0aWNSZXBvcnRzLmVmZmVjdGl2ZSkgb3ZlcmxhcHMgSVAucGVyaW9kKSkKICByZXR1cm4gU2hhcmVkUmVzb3VyY2UuRGlhZ25vc3RpY1JlcG9ydExhYlJlc291cmNlKERpYWdub3N0aWNSZXBvcnRzLAogIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly9obDcub3JnL2ZoaXIvdXMvbmhzbi1kcW0vU3RydWN0dXJlRGVmaW5pdGlvbi9hY2gtZGlhZ25vc3RpY3JlcG9ydC1sYWInfX0pCiAKZGVmaW5lICJTREUgRGlhZ25vc3RpY1JlcG9ydCBOb3RlIjoKICAiRGlhZ25vc3RpY1JlcG9ydHMiIERpYWdub3N0aWNSZXBvcnRzCiAgd2hlcmUgKChleGlzdHMoRGlhZ25vc3RpY1JlcG9ydHMuY2F0ZWdvcnkgQ2F0ZWdvcnkgd2hlcmUgQ2F0ZWdvcnkgfiAiUmFkaW9sb2d5IikpCiAgICBvciBleGlzdHMoKERpYWdub3N0aWNSZXBvcnRzLmNhdGVnb3J5IENhdGVnb3J5IHdoZXJlIENhdGVnb3J5IH4gIlBhdGhvbG9neSIpKQogICAgb3IgZXhpc3RzKChEaWFnbm9zdGljUmVwb3J0cy5jYXRlZ29yeSBDYXRlZ29yeSB3aGVyZSBDYXRlZ29yeSB+ICJDYXJkaW9sb2d5IikpKQogICAgYW5kIGV4aXN0cygKICAgICAgIkluaXRpYWwgUG9wdWxhdGlvbiIgSVAKICAgICAgd2hlcmUgR2xvYmFsLiJOb3JtYWxpemUgSW50ZXJ2YWwiKERpYWdub3N0aWNSZXBvcnRzLmVmZmVjdGl2ZSkgb3ZlcmxhcHMgSVAucGVyaW9kKQogIHJldHVybiBEaWFnbm9zdGljUmVwb3J0UmVzb3VyY2UoRGlhZ25vc3RpY1JlcG9ydHMsCiAge0ZISVIuY2Fub25pY2Fse3ZhbHVlOiAnaHR0cDovL2hsNy5vcmcvZmhpci91cy9uaHNuLWRxbS9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1kaWFnbm9zdGljcmVwb3J0LW5vdGUnfX0pCgpkZWZpbmUgIlNERSBEaWFnbm9zdGljUmVwb3J0IE90aGVycyI6CiAgW0RpYWdub3N0aWNSZXBvcnRdIERpYWdub3N0aWNSZXBvcnRzCiAgd2hlcmUgbm90ICgoZXhpc3RzKERpYWdub3N0aWNSZXBvcnRzLmNhdGVnb3J5IENhdGVnb3J5IHdoZXJlIENhdGVnb3J5IH4gIlJhZGlvbG9neSIpKQogICAgb3IgZXhpc3RzKChEaWFnbm9zdGljUmVwb3J0cy5jYXRlZ29yeSBDYXRlZ29yeSB3aGVyZSBDYXRlZ29yeSB+ICJQYXRob2xvZ3kiKSkKICAgIG9yIGV4aXN0cygoRGlhZ25vc3RpY1JlcG9ydHMuY2F0ZWdvcnkgQ2F0ZWdvcnkgd2hlcmUgQ2F0ZWdvcnkgfiAiQ2FyZGlvbG9neSIpKQogICAgb3IgZXhpc3RzKERpYWdub3N0aWNSZXBvcnRzLmNhdGVnb3J5IENhdGVnb3J5IHdoZXJlIENhdGVnb3J5IH4gIkxBQiIpKQogICAgYW5kIGV4aXN0cygiSW5pdGlhbCBQb3B1bGF0aW9uIiBJUAogICAgICB3aGVyZSBHbG9iYWwuIk5vcm1hbGl6ZSBJbnRlcnZhbCIoRGlhZ25vc3RpY1JlcG9ydHMuZWZmZWN0aXZlKSBvdmVybGFwcyBJUC5wZXJpb2QpCiAgcmV0dXJuIERpYWdub3N0aWNSZXBvcnRSZXNvdXJjZShEaWFnbm9zdGljUmVwb3J0cywKICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vaGw3Lm9yZy9maGlyL3VzL25oc24tZHFtL1N0cnVjdHVyZURlZmluaXRpb24vYWNoLWRpYWdub3N0aWNyZXBvcnQnfX0pCgpkZWZpbmUgIlNERSBFbmNvdW50ZXIiOiAKICAiRW5jb3VudGVycyIgRW5jb3VudGVycwogIHdoZXJlIGV4aXN0cygKICAgICJJbml0aWFsIFBvcHVsYXRpb24iIElQCiAgICB3aGVyZSBFbmNvdW50ZXJzLnBlcmlvZCBvdmVybGFwcyBJUC5wZXJpb2QpCiAgcmV0dXJuIEVuY291bnRlclJlc291cmNlKEVuY291bnRlcnMsCiAge0ZISVIuY2Fub25pY2Fse3ZhbHVlOiAnaHR0cDovL2hsNy5vcmcvZmhpci91cy9uaHNuLWRxbS9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1lbmNvdW50ZXInfX0pCgpkZWZpbmUgIlNERSBMb2NhdGlvbiI6CiAgIkdldCBMb2NhdGlvbnMgZnJvbSBJUCBFbmNvdW50ZXJzIGluIE1lYXN1cmVtZW50IFBlcmlvZCIgTG9jYXRpb25zCiAgd2hlcmUgZXhpc3RzKCJJbml0aWFsIFBvcHVsYXRpb24iKQogIGFuZCBMb2NhdGlvbnMgaXMgbm90IG51bGwKICByZXR1cm4gU2hhcmVkUmVzb3VyY2UuTG9jYXRpb25SZXNvdXJjZShMb2NhdGlvbnMsCiAge0ZISVIuY2Fub25pY2Fse3ZhbHVlOiAnaHR0cDovL2hsNy5vcmcvZmhpci91cy9uaHNuLWRxbS9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1sb2NhdGlvbid9fSkKIApkZWZpbmUgIlNERSBNZWRpY2F0aW9uIEFkbWluaXN0cmF0aW9uIjoKICBbTWVkaWNhdGlvbkFkbWluaXN0cmF0aW9uXSBNZWRpY2F0aW9uQWRtaW5pc3RyYXRpb25zIAogIHdoZXJlIGV4aXN0cygKICAgICJJbml0aWFsIFBvcHVsYXRpb24iIElQCiAgICB3aGVyZSBHbG9iYWwuIk5vcm1hbGl6ZSBJbnRlcnZhbCIoTWVkaWNhdGlvbkFkbWluaXN0cmF0aW9ucy5lZmZlY3RpdmUpIG92ZXJsYXBzIElQLnBlcmlvZCkKICByZXR1cm4gU2hhcmVkUmVzb3VyY2UuTWVkaWNhdGlvbkFkbWluaXN0cmF0aW9uUmVzb3VyY2UoTWVkaWNhdGlvbkFkbWluaXN0cmF0aW9ucywKICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vaGw3Lm9yZy9maGlyL3VzL25oc24tZHFtL1N0cnVjdHVyZURlZmluaXRpb24vYWNoLW1lZGljYXRpb25hZG1pbmlzdHJhdGlvbid9fSkKIApkZWZpbmUgIlNERSBNZWRpY2F0aW9uIFJlcXVlc3QiOgogIFtNZWRpY2F0aW9uUmVxdWVzdF0gTWVkaWNhdGlvblJlcXVlc3RzIAogIHdoZXJlIGV4aXN0cygKICAgICJJbml0aWFsIFBvcHVsYXRpb24iIElQCiAgICB3aGVyZSBNZWRpY2F0aW9uUmVxdWVzdHMuYXV0aG9yZWRPbiBkdXJpbmcgSVAucGVyaW9kKQogIHJldHVybiBTaGFyZWRSZXNvdXJjZS5NZWRpY2F0aW9uUmVxdWVzdFJlc291cmNlKE1lZGljYXRpb25SZXF1ZXN0cywKICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vaGw3Lm9yZy9maGlyL3VzL25oc24tZHFtL1N0cnVjdHVyZURlZmluaXRpb24vYWNoLW1lZGljYXRpb25yZXF1ZXN0J319KQoKZGVmaW5lICJTREUgTWVkaWNhdGlvbiI6CiAgKCJTREUgTWVkaWNhdGlvbiBSZXF1ZXN0IgogIHVuaW9uICJTREUgTWVkaWNhdGlvbiBBZG1pbmlzdHJhdGlvbiIpIE1lZFJlcU9yQWRtaW4KICB3aGVyZSBNZWRSZXFPckFkbWluLm1lZGljYXRpb24gaXMgRkhJUi5SZWZlcmVuY2UKICBhbmQgZXhpc3RzKCJJbml0aWFsIFBvcHVsYXRpb24iKSAvL05vIGxvbmdlciBuZWVkIHRvIGNoZWNrIGZvciB0aW1pbmcgaGVyZSBiZWNhdXNlIGl0J3MgY2hlY2tlZCBpbiBTREUgTWVkaWNhdGlvbiBSZXF1ZXN0L0FkbWluaXN0cmlhdGlvbgogIHJldHVybiBTaGFyZWRSZXNvdXJjZS5NZWRpY2F0aW9uUmVzb3VyY2UoR2V0TWVkaWNhdGlvbkZyb20oTWVkUmVxT3JBZG1pbi5tZWRpY2F0aW9uKSwKICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vaGw3Lm9yZy9maGlyL3VzL25oc24tZHFtL1N0cnVjdHVyZURlZmluaXRpb24vYWNoLW1lZGljYXRpb24nfX0pCgpkZWZpbmUgIlNERSBPYnNlcnZhdGlvbiBMYWIgQ2F0ZWdvcnkiOgogICJPYnNlcnZhdGlvbnMiIE9ic2VydmF0aW9ucyAKICB3aGVyZSAoZXhpc3RzKE9ic2VydmF0aW9ucy5jYXRlZ29yeSBDYXRlZ29yeSB3aGVyZSBDYXRlZ29yeSB+ICJsYWJvcmF0b3J5IikpCiAgICBhbmQgZXhpc3RzKAogICAgICAiSW5pdGlhbCBQb3B1bGF0aW9uIiBJUAogICAgICB3aGVyZSBHbG9iYWwuIk5vcm1hbGl6ZSBJbnRlcnZhbCIoT2JzZXJ2YXRpb25zLmVmZmVjdGl2ZSkgb3ZlcmxhcHMgSVAucGVyaW9kKQogIHJldHVybiBTaGFyZWRSZXNvdXJjZS5PYnNlcnZhdGlvbkxhYlJlc291cmNlKE9ic2VydmF0aW9ucywKICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vaGw3Lm9yZy9maGlyL3VzL25oc24tZHFtL1N0cnVjdHVyZURlZmluaXRpb24vYWNoLW9ic2VydmF0aW9uLWxhYid9fSkKCi8vVml0YWwgU2lnbnMgT2JzZXJ2YXRpb24gaGFzIGl0cyBvd24gcHJvZmlsZSBpbiBGSElSIEJhc2UKZGVmaW5lICJTREUgT2JzZXJ2YXRpb24gVml0YWwgU2lnbnMgQ2F0ZWdvcnkiOgogICJPYnNlcnZhdGlvbnMiIE9ic2VydmF0aW9ucyAKICB3aGVyZSAoZXhpc3RzKE9ic2VydmF0aW9ucy5jYXRlZ29yeSBDYXRlZ29yeSB3aGVyZSBDYXRlZ29yeSB+ICJ2aXRhbC1zaWducyIpKQogICAgYW5kIGV4aXN0cygKICAgICAgIkluaXRpYWwgUG9wdWxhdGlvbiIgSVAKICAgICAgd2hlcmUgR2xvYmFsLiJOb3JtYWxpemUgSW50ZXJ2YWwiKE9ic2VydmF0aW9ucy5lZmZlY3RpdmUpIG92ZXJsYXBzIElQLnBlcmlvZCkKICByZXR1cm4gT2JzZXJ2YXRpb25WaXRhbFNpZ25zUmVzb3VyY2UoT2JzZXJ2YXRpb25zLAogIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly9obDcub3JnL2ZoaXIvdXMvbmhzbi1kcW0vU3RydWN0dXJlRGVmaW5pdGlvbi9hY2gtb2JzZXJ2YXRpb24tdml0YWxzJ319KQoKLy9EZWZhdWx0aW5nIHRvIGJhc2UgRkhJUiBwcm9maWxlIGFzIHRoZXJlIGFyZSBubyBpbmRpdmlkdWFsIHByb2ZpbGVzIGluIFVTIENvcmUgMy4xLjEgdGhhdCBjb3ZlciB0aGVzZSBPYnNlcnZhdGlvbiBjYXRlZ29yaWVzCmRlZmluZSAiU0RFIE9ic2VydmF0aW9uIENhdGVnb3J5IjoKICAiT2JzZXJ2YXRpb25zIiBPYnNlcnZhdGlvbnMgCiAgd2hlcmUgKChleGlzdHMoT2JzZXJ2YXRpb25zLmNhdGVnb3J5IENhdGVnb3J5IHdoZXJlIENhdGVnb3J5IH4gInNvY2lhbC1oaXN0b3J5IikpCiAgICBvciAoZXhpc3RzKE9ic2VydmF0aW9ucy5jYXRlZ29yeSBDYXRlZ29yeSB3aGVyZSBDYXRlZ29yeSB+ICJzdXJ2ZXkiKSkKICAgIG9yIChleGlzdHMoT2JzZXJ2YXRpb25zLmNhdGVnb3J5IENhdGVnb3J5IHdoZXJlIENhdGVnb3J5IH4gImltYWdpbmciKSkKICAgIG9yIChleGlzdHMoT2JzZXJ2YXRpb25zLmNhdGVnb3J5IENhdGVnb3J5IHdoZXJlIENhdGVnb3J5IH4gInByb2NlZHVyZSIpKSkKICAgIGFuZCBleGlzdHMoCiAgICAgICJJbml0aWFsIFBvcHVsYXRpb24iIElQCiAgICAgIHdoZXJlIEdsb2JhbC4iTm9ybWFsaXplIEludGVydmFsIihPYnNlcnZhdGlvbnMuZWZmZWN0aXZlKSBvdmVybGFwcyBJUC5wZXJpb2QpCiAgcmV0dXJuIE9ic2VydmF0aW9uUmVzb3VyY2UoT2JzZXJ2YXRpb25zLAogIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly9obDcub3JnL2ZoaXIvdXMvbmhzbi1kcW0vU3RydWN0dXJlRGVmaW5pdGlvbi9hY2gtb2JzZXJ2YXRpb24nfX0pCgpkZWZpbmUgIlNERSBDb3ZlcmFnZSI6IAoJW0NvdmVyYWdlXSBDb3ZlcmFnZXMKICB3aGVyZSBleGlzdHMoCiAgICAiSW5pdGlhbCBQb3B1bGF0aW9uIiBJUAogICAgd2hlcmUgQ292ZXJhZ2VzLnBlcmlvZCBvdmVybGFwcyBJUC5wZXJpb2QpCiAgcmV0dXJuIFNoYXJlZFJlc291cmNlLkNvdmVyYWdlUmVzb3VyY2UoQ292ZXJhZ2VzLAogIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly9obDcub3JnL2ZoaXIvdXMvbmhzbi1kcW0vU3RydWN0dXJlRGVmaW5pdGlvbi9hY2gtY292ZXJhZ2UnfX0pCgpkZWZpbmUgIlNERSBQcm9jZWR1cmUiOgogIFtQcm9jZWR1cmVdIFByb2NlZHVyZXMgCiAgd2hlcmUgZXhpc3RzKAogICAgIkluaXRpYWwgUG9wdWxhdGlvbiIgSVAKICAgIHdoZXJlIEdsb2JhbC4iTm9ybWFsaXplIEludGVydmFsIihQcm9jZWR1cmVzLnBlcmZvcm1lZCkgb3ZlcmxhcHMgSVAucGVyaW9kKQogIHJldHVybiBTaGFyZWRSZXNvdXJjZS5Qcm9jZWR1cmVSZXNvdXJjZShQcm9jZWR1cmVzLAogIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly9obDcub3JnL2ZoaXIvdXMvbmhzbi1kcW0vU3RydWN0dXJlRGVmaW5pdGlvbi9hY2gtcHJvY2VkdXJlJ319KQoKZGVmaW5lICJTREUgU3BlY2ltZW4iOgogIFtTcGVjaW1lbl0gU3BlY2ltZW5zCiAgd2hlcmUgZXhpc3RzKAogICAgIkluaXRpYWwgUG9wdWxhdGlvbiIgSVAKICAgIHdoZXJlIEdsb2JhbC4iTm9ybWFsaXplIEludGVydmFsIihTcGVjaW1lbnMuY29sbGVjdGlvbi5jb2xsZWN0ZWQpIG92ZXJsYXBzIElQLnBlcmlvZAogICkKICByZXR1cm4gU2hhcmVkUmVzb3VyY2UuU3BlY2ltZW5SZXNvdXJjZShTcGVjaW1lbnMsCiAge0ZISVIuY2Fub25pY2Fse3ZhbHVlOiAnaHR0cDovL2hsNy5vcmcvZmhpci91cy9uaHNuLWRxbS9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1zcGVjaW1lbid9fSkKCmRlZmluZSAiU0RFIFNlcnZpY2UgUmVxdWVzdCI6CiAgW1NlcnZpY2VSZXF1ZXN0XSBTZXJ2aWNlUmVxdWVzdHMKICB3aGVyZSBleGlzdHMoIkluaXRpYWwgUG9wdWxhdGlvbiIgSVAKICAgIHdoZXJlIFNlcnZpY2VSZXF1ZXN0cy5hdXRob3JlZE9uIGR1cmluZyBJUC5wZXJpb2QpCiAgcmV0dXJuIFNoYXJlZFJlc291cmNlLlNlcnZpY2VSZXF1ZXN0UmVzb3VyY2UoU2VydmljZVJlcXVlc3RzLAogIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly9obDcub3JnL2ZoaXIvdXMvbmhzbi1kcW0vU3RydWN0dXJlRGVmaW5pdGlvbi9hY2gtc2VydmljZXJlcXVlc3QnfX0pCgpkZWZpbmUgIlNERSBNaW5pbWFsIFBhdGllbnQiOgogIFBhdGllbnQgcAogIHJldHVybiBTaGFyZWRSZXNvdXJjZS5QYXRpZW50UmVzb3VyY2UocCwKICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vaGw3Lm9yZy9maGlyL3VzL25oc24tZHFtL1N0cnVjdHVyZURlZmluaXRpb24vY3Jvc3MtbWVhc3VyZS1wYXRpZW50J319KQoKLy8KLy9GdW5jdGlvbnMKLy8KZGVmaW5lIGZ1bmN0aW9uICJHZXRNZWRpY2F0aW9uRnJvbSIoY2hvaWNlIENob2ljZTxGSElSLkNvZGVhYmxlQ29uY2VwdCwgRkhJUi5SZWZlcmVuY2U+KToKICBjYXNlCiAgICB3aGVuIGNob2ljZSBpcyBGSElSLlJlZmVyZW5jZSB0aGVuCiAgICAgIEdldE1lZGljYXRpb24oY2hvaWNlIGFzIEZISVIuUmVmZXJlbmNlKQogICAgZWxzZQogICAgICBudWxsCiAgZW5kCgpkZWZpbmUgZnVuY3Rpb24gIkdldE1lZGljYXRpb24iKHJlZmVyZW5jZSBSZWZlcmVuY2UgKToKICBzaW5nbGV0b24gZnJvbSAoCiAgICBbTWVkaWNhdGlvbl0gTWVkaWNhdGlvbnMKICAgIHdoZXJlIE1lZGljYXRpb25zLmlkID0gR2xvYmFsLkdldElkKHJlZmVyZW5jZS5yZWZlcmVuY2UpCiAgKQoKLy8KLy9NZWFzdXJlIFNwZWNpZmljIFJlc291cmNlIENyZWF0aW9uIEZ1bmN0aW9ucwovLwpkZWZpbmUgZnVuY3Rpb24gRGV2aWNlVWRpQ2Fycmllcih1ZGlDYXJyaWVyIExpc3Q8RkhJUi5EZXZpY2UuVWRpQ2Fycmllcj4pOgogIHVkaUNhcnJpZXIgdQogIHJldHVybiBGSElSLkRldmljZS5VZGlDYXJyaWVyewogICAgZGV2aWNlSWRlbnRpZmllcjogdS5kZXZpY2VJZGVudGlmaWVyLAogICAgaXNzdWVyOiB1Lmlzc3VlciwKICAgIGp1cmlzZGljdGlvbjogdS5qdXJpc2RpY3Rpb24sCiAgICBjYXJyaWVyQUlEQzogdS5jYXJyaWVyQUlEQywKICAgIGNhcnJpZXJIUkY6IHUuY2FycmllckhSRiwKICAgIGVudHJ5VHlwZTogdS5lbnRyeVR5cGUKICB9CgpkZWZpbmUgZnVuY3Rpb24gRGV2aWNlRGV2aWNlTmFtZShkZXZpY2VOYW1lIExpc3Q8RkhJUi5EZXZpY2UuRGV2aWNlTmFtZT4pOgogIGRldmljZU5hbWUgZAogIHJldHVybiBGSElSLkRldmljZS5EZXZpY2VOYW1lewogICAgbmFtZTogZC5uYW1lLAogICAgdHlwZTogZC50eXBlCiAgfQoKZGVmaW5lIGZ1bmN0aW9uIERldmljZVNwZWNpYWxpemF0aW9uKHNwZWNpYWxpemF0aW9uIExpc3Q8RkhJUi5EZXZpY2UuU3BlY2lhbGl6YXRpb24+KToKICBzcGVjaWFsaXphdGlvbiBzCiAgcmV0dXJuIEZISVIuRGV2aWNlLlNwZWNpYWxpemF0aW9uewogICAgc3lzdGVtVHlwZTogcy5zeXN0ZW1UeXBlLAogICAgdmVyc2lvbjogcy52ZXJzaW9uCiAgfQoKZGVmaW5lIGZ1bmN0aW9uIERldmljZVZlcnNpb24odmVyc2lvbiBMaXN0PEZISVIuRGV2aWNlLlZlcnNpb24+KToKICB2ZXJzaW9uIHYKICByZXR1cm4gRkhJUi5EZXZpY2UuVmVyc2lvbnsKICAgIHR5cGU6IHYudHlwZSwKICAgIGNvbXBvbmVudDogdi5jb21wb25lbnQsCiAgICB2YWx1ZTogdi52YWx1ZQogIH0KCmRlZmluZSBmdW5jdGlvbiBEZXZpY2VQcm9wZXJ0eShkZXZpY2VQcm9wZXJ0eSBMaXN0PEZISVIuRGV2aWNlLlByb3BlcnR5Pik6CiAgZGV2aWNlUHJvcGVydHkgZAogIHJldHVybiBGSElSLkRldmljZS5Qcm9wZXJ0eXsKICAgIGlkOiBkLmlkLAogICAgdHlwZTogZC50eXBlLAogICAgdmFsdWVRdWFudGl0eTogZC52YWx1ZVF1YW50aXR5LAogICAgdmFsdWVDb2RlOiBkLnZhbHVlQ29kZQogIH0KCmRlZmluZSBmdW5jdGlvbiBEZXZpY2VSZXNvdXJjZShkZXZpY2UgRGV2aWNlLCBwcm9maWxlVVJMcyBMaXN0PEZISVIuY2Fub25pY2FsPik6CiAgZGV2aWNlIGQKICByZXR1cm4gRGV2aWNlewogICAgaWQ6IEZISVIuaWR7dmFsdWU6ICdMQ1ItJyArIGQuaWR9LAogICAgbWV0YTogU2hhcmVkUmVzb3VyY2UuTWV0YUVsZW1lbnQoZCwgcHJvZmlsZVVSTHMpLAogICAgZXh0ZW5zaW9uOiBkLmV4dGVuc2lvbiwKICAgIGRlZmluaXRpb246IGQuZGVmaW5pdGlvbiwKICAgIHVkaUNhcnJpZXI6IERldmljZVVkaUNhcnJpZXIoZC51ZGlDYXJyaWVyKSwKICAgIHN0YXR1czogZC5zdGF0dXMsCiAgICBzdGF0dXNSZWFzb246IGQuc3RhdHVzUmVhc29uLAogICAgZGlzdGluY3RJZGVudGlmaWVyOiBkLmRpc3RpbmN0SWRlbnRpZmllciwKICAgIG1hbnVmYWN0dXJlcjogZC5tYW51ZmFjdHVyZXIsCiAgICBtYW51ZmFjdHVyZURhdGU6IGQubWFudWZhY3R1cmVEYXRlLAogICAgZXhwaXJhdGlvbkRhdGU6IGQuZXhwaXJhdGlvbkRhdGUsCiAgICBsb3ROdW1iZXI6IGQubG90TnVtYmVyLAogICAgc2VyaWFsTnVtYmVyOiBkLnNlcmlhbE51bWJlciwKICAgIGRldmljZU5hbWU6IERldmljZURldmljZU5hbWUoZC5kZXZpY2VOYW1lKSwKICAgIG1vZGVsTnVtYmVyOiBkLm1vZGVsTnVtYmVyLAogICAgcGFydE51bWJlcjogZC5wYXJ0TnVtYmVyLAogICAgdHlwZTogZC50eXBlLAogICAgc3BlY2lhbGl6YXRpb246IERldmljZVNwZWNpYWxpemF0aW9uKGQuc3BlY2lhbGl6YXRpb24pLAogICAgdmVyc2lvbjogRGV2aWNlVmVyc2lvbihkLnZlcnNpb24pLAogICAgcHJvcGVydHk6IERldmljZVByb3BlcnR5KGQucHJvcGVydHkpLAogICAgcGF0aWVudDogZC5wYXRpZW50LAogICAgb3duZXI6IGQub3duZXIsCiAgICBjb250YWN0OiBkLmNvbnRhY3QsCiAgICBsb2NhdGlvbjogZC5sb2NhdGlvbiwKICAgIHVybDogZC51cmwsCiAgICBub3RlOiBkLm5vdGUsCiAgICBzYWZldHk6IGQuc2FmZXR5LAogICAgcGFyZW50OiBkLnBhcmVudAogIH0KCmRlZmluZSBmdW5jdGlvbiBEaWFnbm9zdGljUmVwb3J0UmVzb3VyY2UoZGlhZ25vc3RpY1JlcG9ydCBEaWFnbm9zdGljUmVwb3J0LCBwcm9maWxlVVJMcyBMaXN0PEZISVIuY2Fub25pY2FsPik6CiAgZGlhZ25vc3RpY1JlcG9ydCBkCiAgcmV0dXJuIERpYWdub3N0aWNSZXBvcnR7CiAgICBpZDogRkhJUi5pZHt2YWx1ZTogJ0xDUi0nICsgZC5pZH0sCiAgICBtZXRhOiBTaGFyZWRSZXNvdXJjZS5NZXRhRWxlbWVudChkLCBwcm9maWxlVVJMcyksCiAgICBleHRlbnNpb246IGQuZXh0ZW5zaW9uLAogICAgYmFzZWRPbjogZC5iYXNlZE9uLAogICAgc3RhdHVzOiBkLnN0YXR1cywKICAgIGNhdGVnb3J5OiBkLmNhdGVnb3J5LAogICAgY29kZTogZC5jb2RlLAogICAgc3ViamVjdDogZC5zdWJqZWN0LAogICAgZW5jb3VudGVyOiBkLmVuY291bnRlciwKICAgIGVmZmVjdGl2ZTogZC5lZmZlY3RpdmUsCiAgICBpc3N1ZWQ6IGQuaXNzdWVkLAogICAgcGVyZm9ybWVyOiBkLnBlcmZvcm1lciwKICAgIHJlc3VsdHNJbnRlcnByZXRlcjogZC5yZXN1bHRzSW50ZXJwcmV0ZXIsCiAgICBzcGVjaW1lbjogZC5zcGVjaW1lbiwKICAgIHJlc3VsdDogZC5yZXN1bHQsCiAgICBjb25jbHVzaW9uOiBkLmNvbmNsdXNpb24sCiAgICBjb25jbHVzaW9uQ29kZTogZC5jb25jbHVzaW9uQ29kZQogIH0KCmRlZmluZSBmdW5jdGlvbiBFbmNvdW50ZXJSZXNvdXJjZShlbmNvdW50ZXIgRW5jb3VudGVyLCBwcm9maWxlVVJMcyBMaXN0PEZISVIuY2Fub25pY2FsPik6CiAgZW5jb3VudGVyIGUKICByZXR1cm4gRW5jb3VudGVyewogICAgaWQ6IEZISVIuaWR7dmFsdWU6ICdMQ1ItJyArIGUuaWR9LAogICAgbWV0YTogU2hhcmVkUmVzb3VyY2UuTWV0YUVsZW1lbnQoZSwgcHJvZmlsZVVSTHMpLAogICAgZXh0ZW5zaW9uOiBlLmV4dGVuc2lvbiwKICAgIGlkZW50aWZpZXI6IFNoYXJlZFJlc291cmNlLkVuY291bnRlcklkZW50aWZpZXIoZS5pZGVudGlmaWVyKSwKICAgIHN0YXR1czogZS5zdGF0dXMsCiAgICBzdGF0dXNIaXN0b3J5OiBTaGFyZWRSZXNvdXJjZS5FbmNvdW50ZXJTdGF0dXNIaXN0b3J5KGUuc3RhdHVzSGlzdG9yeSksCiAgICBjbGFzczogZS5jbGFzcywKICAgIGNsYXNzSGlzdG9yeTogU2hhcmVkUmVzb3VyY2UuRW5jb3VudGVyQ2xhc3NIaXN0b3J5KGUuY2xhc3NIaXN0b3J5KSwKICAgIHR5cGU6IGUudHlwZSwKICAgIHNlcnZpY2VUeXBlOiBlLnNlcnZpY2VUeXBlLAogICAgcHJpb3JpdHk6IGUucHJpb3JpdHksCiAgICBzdWJqZWN0OiBlLnN1YmplY3QsCiAgICBwZXJpb2Q6IGUucGVyaW9kLAogICAgbGVuZ3RoOiBlLmxlbmd0aCwKICAgIHJlYXNvbkNvZGU6IGUucmVhc29uQ29kZSwKICAgIHJlYXNvblJlZmVyZW5jZTogZS5yZWFzb25SZWZlcmVuY2UsCiAgICBkaWFnbm9zaXM6IFNoYXJlZFJlc291cmNlLkVuY291bnRlckRpYWdub3NpcyhlLmRpYWdub3NpcyksCiAgICBhY2NvdW50OiBlLmFjY291bnQsCiAgICBob3NwaXRhbGl6YXRpb246IFNoYXJlZFJlc291cmNlLkVuY291bnRlckhvc3BpdGFsaXphdGlvbihlLmhvc3BpdGFsaXphdGlvbiksCiAgICBsb2NhdGlvbjogU2hhcmVkUmVzb3VyY2UuRW5jb3VudGVyTG9jYXRpb24oZS5sb2NhdGlvbiksCiAgICBwYXJ0T2Y6IGUucGFydE9mCiAgfQoKZGVmaW5lIGZ1bmN0aW9uIE9ic2VydmF0aW9uUmVzb3VyY2Uob2JzZXJ2YXRpb24gT2JzZXJ2YXRpb24sIHByb2ZpbGVVUkxzIExpc3Q8RkhJUi5jYW5vbmljYWw+KToKICBvYnNlcnZhdGlvbiBvCiAgcmV0dXJuIE9ic2VydmF0aW9uewogICAgaWQ6IEZISVIuaWQge3ZhbHVlOiAnTENSLScgKyBvLmlkfSwKICAgIG1ldGE6IFNoYXJlZFJlc291cmNlLk1ldGFFbGVtZW50KG8sIHByb2ZpbGVVUkxzKSwKICAgIGV4dGVuc2lvbjogby5leHRlbnNpb24sCiAgICBwYXJ0T2Y6IG8ucGFydE9mLAogICAgc3RhdHVzOiBvLnN0YXR1cywKICAgIGNhdGVnb3J5OiBvLmNhdGVnb3J5LAogICAgY29kZTogby5jb2RlLAogICAgc3ViamVjdDogby5zdWJqZWN0LAogICAgZm9jdXM6IG8uZm9jdXMsCiAgICBlbmNvdW50ZXI6IG8uZW5jb3VudGVyLAogICAgZWZmZWN0aXZlOiBvLmVmZmVjdGl2ZSwKICAgIGlzc3VlZDogby5pc3N1ZWQsCiAgICBwZXJmb3JtZXI6IG8ucGVyZm9ybWVyLAogICAgdmFsdWU6IG8udmFsdWUsCiAgICBkYXRhQWJzZW50UmVhc29uOiBvLmRhdGFBYnNlbnRSZWFzb24sCiAgICBpbnRlcnByZXRhdGlvbjogby5pbnRlcnByZXRhdGlvbiwKICAgIG5vdGU6IG8ubm90ZSwKICAgIGJvZHlTaXRlOiBvLmJvZHlTaXRlLAogICAgbWV0aG9kOiBvLm1ldGhvZCwKICAgIHNwZWNpbWVuOiBvLnNwZWNpbWVuLAogICAgZGV2aWNlOiBvLmRldmljZSwKICAgIHJlZmVyZW5jZVJhbmdlOiBTaGFyZWRSZXNvdXJjZS5PYnNlcnZhdGlvblJlZmVyZW5jZVJhbmdlKG8ucmVmZXJlbmNlUmFuZ2UpLAogICAgaGFzTWVtYmVyOiBvLmhhc01lbWJlciwKICAgIGRlcml2ZWRGcm9tOiBvLmRlcml2ZWRGcm9tLAogICAgY29tcG9uZW50OiBTaGFyZWRSZXNvdXJjZS5PYnNlcnZhdGlvbkNvbXBvbmVudChvLmNvbXBvbmVudCkKICB9CgpkZWZpbmUgZnVuY3Rpb24gT2JzZXJ2YXRpb25WaXRhbFNpZ25zQ29kaW5nKGNvZGluZyBMaXN0PENvZGluZz4pOgogIGNvZGluZyBjCiAgcmV0dXJuIENvZGluZ3sKICAgIHN5c3RlbTogYy5zeXN0ZW0sCiAgICB2ZXJzaW9uOiBjLnZlcnNpb24sCiAgICBjb2RlOiBjLmNvZGUsCiAgICBkaXNwbGF5OiBjLmRpc3BsYXksCiAgICB1c2VyU2VsZWN0ZWQ6IGMudXNlclNlbGVjdGVkCiAgfQoKZGVmaW5lIGZ1bmN0aW9uIE9ic2VydmF0aW9uVml0YWxTaWduc0NhdGVnb3J5KGNhdGVnb3J5IExpc3Q8Q29kZWFibGVDb25jZXB0Pik6CiAgY2F0ZWdvcnkgYwogIHJldHVybiBDb2RlYWJsZUNvbmNlcHR7CiAgICBjb2Rpbmc6IE9ic2VydmF0aW9uVml0YWxTaWduc0NvZGluZyhjLmNvZGluZyksCiAgICB0ZXh0OiBjLnRleHQKICB9CgpkZWZpbmUgZnVuY3Rpb24gT2JzZXJ2YXRpb25WaXRhbFNpZ25zQ29tcG9uZW50KGNvbXBvbmVudCBMaXN0PEZISVIuT2JzZXJ2YXRpb24uQ29tcG9uZW50Pik6CiAgY29tcG9uZW50IGMKICByZXR1cm4gRkhJUi5PYnNlcnZhdGlvbi5Db21wb25lbnR7CiAgICBjb2RlOiBjLmNvZGUsCiAgICB2YWx1ZTogYy52YWx1ZSwKICAgIGRhdGFBYnNlbnRSZWFzb246IGMuZGF0YUFic2VudFJlYXNvbiwKICAgIGludGVycHJldGF0aW9uOiBjLmludGVycHJldGF0aW9uLAogICAgcmVmZXJlbmNlUmFuZ2U6IFNoYXJlZFJlc291cmNlLk9ic2VydmF0aW9uUmVmZXJlbmNlUmFuZ2UoYy5yZWZlcmVuY2VSYW5nZSkKICB9CgpkZWZpbmUgZnVuY3Rpb24gT2JzZXJ2YXRpb25WaXRhbFNpZ25zUmVzb3VyY2Uob2JzZXJ2YXRpb24gT2JzZXJ2YXRpb24sIHByb2ZpbGVVUkxzIExpc3Q8RkhJUi5jYW5vbmljYWw+KToKICBvYnNlcnZhdGlvbiBvCiAgcmV0dXJuIE9ic2VydmF0aW9uewogICAgaWQ6IEZISVIuaWQge3ZhbHVlOiAnTENSLScgKyBvLmlkfSwKICAgIG1ldGE6IFNoYXJlZFJlc291cmNlLk1ldGFFbGVtZW50KG8sIHByb2ZpbGVVUkxzKSwKICAgIGV4dGVuc2lvbjogby5leHRlbnNpb24sCiAgICBwYXJ0T2Y6IG8ucGFydE9mLAogICAgc3RhdHVzOiBvLnN0YXR1cywKICAgIGNhdGVnb3J5OiBPYnNlcnZhdGlvblZpdGFsU2lnbnNDYXRlZ29yeShvLmNhdGVnb3J5KSwKICAgIGNvZGU6IG8uY29kZSwKICAgIHN1YmplY3Q6IG8uc3ViamVjdCwKICAgIGZvY3VzOiBvLmZvY3VzLAogICAgZW5jb3VudGVyOiBvLmVuY291bnRlciwKICAgIGVmZmVjdGl2ZTogby5lZmZlY3RpdmUsCiAgICBpc3N1ZWQ6IG8uaXNzdWVkLAogICAgcGVyZm9ybWVyOiBvLnBlcmZvcm1lciwKICAgIHZhbHVlOiBvLnZhbHVlLAogICAgZGF0YUFic2VudFJlYXNvbjogby5kYXRhQWJzZW50UmVhc29uLAogICAgaW50ZXJwcmV0YXRpb246IG8uaW50ZXJwcmV0YXRpb24sCiAgICBub3RlOiBvLm5vdGUsCiAgICBib2R5U2l0ZTogby5ib2R5U2l0ZSwKICAgIG1ldGhvZDogby5tZXRob2QsCiAgICBzcGVjaW1lbjogby5zcGVjaW1lbiwKICAgIGRldmljZTogby5kZXZpY2UsCiAgICByZWZlcmVuY2VSYW5nZTogU2hhcmVkUmVzb3VyY2UuT2JzZXJ2YXRpb25SZWZlcmVuY2VSYW5nZShvLnJlZmVyZW5jZVJhbmdlKSwKICAgIGhhc01lbWJlcjogby5oYXNNZW1iZXIsCiAgICBkZXJpdmVkRnJvbTogby5kZXJpdmVkRnJvbSwKICAgIGNvbXBvbmVudDogT2JzZXJ2YXRpb25WaXRhbFNpZ25zQ29tcG9uZW50KG8uY29tcG9uZW50KQogIH0="^^xsd:base64Binary ]
  ] ) . #