FHIR © HL7.org  |  FHIRsmith 4.0.1  |  Server Home  |  XIG Home  |  XIG Stats  | 

FHIR IG analytics

Packagegov.cdc.nhsn.dqm
Resource TypeLibrary
IdLibrary-NHSNHelpers.json
FHIR VersionR4

Resources that use this resource

No resources found


Resources that this resource uses

No resources found


Narrative

Note: links and images are rebased to the (stated) source

Id: NHSNHelpers
Version: 1.0.0
Url: NHSNHelpers
Status: draft
Type:

system: http://terminology.hl7.org/CodeSystem/library-type

code: logic-library

Date: 2025-09-15 11:51:36-0400
Publisher: CDC National Healthcare Safety Network (NHSN)
Jurisdiction: US
Related Artifacts:

Dependencies

Parameters:
NameTypeMinMaxIn/Out
PatientPatient01Out
Data Requirements:
TypeProfileMSCode Filter
Patient http://hl7.org/fhir/StructureDefinition/Patient
Location http://hl7.org/fhir/StructureDefinition/Location ;
Content: text/cql
library NHSNHelpers version '0.0.002'

using FHIR version '4.0.1'

include FHIRHelpers version '4.0.2'

context Patient

define function "Normalize Interval"(choice Choice<FHIR.dateTime, FHIR.Period, FHIR.Timing, FHIR.instant, FHIR.string, FHIR.Age, FHIR.Range>):
  case
	  when choice is FHIR.dateTime then
    	Interval[FHIRHelpers.ToDateTime(choice as FHIR.dateTime), FHIRHelpers.ToDateTime(choice as FHIR.dateTime)]
		when choice is FHIR.Period then
  		FHIRHelpers.ToInterval(choice as FHIR.Period)
		when choice is FHIR.instant then
			Interval[FHIRHelpers.ToDateTime(choice as FHIR.instant), FHIRHelpers.ToDateTime(choice as FHIR.instant)]
		when choice is FHIR.Age then
		  Interval[FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity(choice as FHIR.Age),
			  FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity(choice as FHIR.Age) + 1 year)
		when choice is FHIR.Range then
		  Interval[FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity((choice as FHIR.Range).low),
			  FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity((choice as FHIR.Range).high) + 1 year)
		when choice is FHIR.Timing then
		  Message(null as Interval<DateTime>, true, '1', 'Error', 'Cannot compute a single interval from a Timing type')
    when choice is FHIR.string then
      Message(null as Interval<DateTime>, true, '1', 'Error', 'Cannot compute an interval from a String value')
		else
			null as Interval<DateTime>
	end

define function "ToDateInterval"(period FHIR.Period):
  Interval[date from period.start, date from period.end]

define function "GetLocation"(reference Reference ):
  singleton from (
	[Location] Locations
		where Locations.id = GetId(reference.reference)
  )

define function "GetId"(uri String ):
  Last(Split(uri, '/'))

Source1

{
  "resourceType": "Library",
  "id": "NHSNHelpers",
  "text": {
    "status": "extensions",
    "div": "<!-- snip (see above) -->"
  },
  "contained": [
    {
      "resourceType": "Parameters",
      "id": "options",
      "parameter": [
        {
          "name": "translatorVersion",
          "valueString": "3.25.0"
        },
        {
          "name": "option",
          "valueString": "EnableDateRangeOptimization"
        },
        {
          "name": "option",
          "valueString": "EnableAnnotations"
        },
        {
          "name": "option",
          "valueString": "EnableLocators"
        },
        {
          "name": "option",
          "valueString": "DisableListDemotion"
        },
        {
          "name": "option",
          "valueString": "DisableListPromotion"
        },
        {
          "name": "analyzeDataRequirements",
          "valueBoolean": false
        },
        {
          "name": "collapseDataRequirements",
          "valueBoolean": true
        },
        {
          "name": "compatibilityLevel",
          "valueString": "1.5"
        },
        {
          "name": "enableCqlOnly",
          "valueBoolean": false
        },
        {
          "name": "errorLevel",
          "valueString": "Info"
        },
        {
          "name": "signatureLevel",
          "valueString": "Overloads"
        },
        {
          "name": "validateUnits",
          "valueBoolean": true
        },
        {
          "name": "verifyOnly",
          "valueBoolean": false
        }
      ]
    }
  ],
  "extension": [
    {
      "url": "http://hl7.org/fhir/StructureDefinition/cqf-cqlOptions",
      "valueReference": {
        "reference": "#options"
      }
    }
  ],
  "url": "http://www.cdc.gov/nhsn/fhirportal/dqm/ig/Library/NHSNHelpers",
  "version": "1.0.0",
  "name": "NHSNHelpers",
  "status": "draft",
  "type": {
    "coding": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/library-type",
        "code": "logic-library"
      }
    ]
  },
  "date": "2025-09-15T11:51:36-04:00",
  "publisher": "CDC National Healthcare Safety Network (NHSN)",
  "contact": [
    {
      "name": "CDC National Healthcare Safety Network (NHSN)",
      "telecom": [
        {
          "system": "url",
          "value": "http://www.cdc.gov/nhsn"
        },
        {
          "system": "email",
          "value": "nhsn@cdc.gov"
        }
      ]
    }
  ],
  "jurisdiction": [
    {
      "coding": [
        {
          "system": "urn:iso:std:iso:3166",
          "code": "US"
        }
      ]
    }
  ],
  "relatedArtifact": [
    {
      "type": "depends-on",
      "display": "FHIR model information",
      "resource": "http://fhir.org/guides/cqf/common/Library/FHIR-ModelInfo|4.0.1"
    },
    {
      "type": "depends-on",
      "display": "Library FHIRHelpers",
      "resource": "http://www.cdc.gov/nhsn/fhirportal/dqm/ig/Library/FHIRHelpers|4.0.2"
    }
  ],
  "parameter": [
    {
      "name": "Patient",
      "use": "out",
      "min": 0,
      "max": "1",
      "type": "Patient"
    }
  ],
  "dataRequirement": [
    {
      "type": "Patient",
      "profile": [
        "http://hl7.org/fhir/StructureDefinition/Patient"
      ]
    },
    {
      "type": "Location",
      "profile": [
        "http://hl7.org/fhir/StructureDefinition/Location"
      ],
      "mustSupport": [
        "id"
      ]
    }
  ],
  "content": [
    {
      "contentType": "text/cql",
      "data": "bGlicmFyeSBOSFNOSGVscGVycyB2ZXJzaW9uICcwLjAuMDAyJw0KDQp1c2luZyBGSElSIHZlcnNpb24gJzQuMC4xJw0KDQppbmNsdWRlIEZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4yJw0KDQpjb250ZXh0IFBhdGllbnQNCg0KZGVmaW5lIGZ1bmN0aW9uICJOb3JtYWxpemUgSW50ZXJ2YWwiKGNob2ljZSBDaG9pY2U8RkhJUi5kYXRlVGltZSwgRkhJUi5QZXJpb2QsIEZISVIuVGltaW5nLCBGSElSLmluc3RhbnQsIEZISVIuc3RyaW5nLCBGSElSLkFnZSwgRkhJUi5SYW5nZT4pOg0KICBjYXNlDQoJICB3aGVuIGNob2ljZSBpcyBGSElSLmRhdGVUaW1lIHRoZW4NCiAgICAJSW50ZXJ2YWxbRkhJUkhlbHBlcnMuVG9EYXRlVGltZShjaG9pY2UgYXMgRkhJUi5kYXRlVGltZSksIEZISVJIZWxwZXJzLlRvRGF0ZVRpbWUoY2hvaWNlIGFzIEZISVIuZGF0ZVRpbWUpXQ0KCQl3aGVuIGNob2ljZSBpcyBGSElSLlBlcmlvZCB0aGVuDQogIAkJRkhJUkhlbHBlcnMuVG9JbnRlcnZhbChjaG9pY2UgYXMgRkhJUi5QZXJpb2QpDQoJCXdoZW4gY2hvaWNlIGlzIEZISVIuaW5zdGFudCB0aGVuDQoJCQlJbnRlcnZhbFtGSElSSGVscGVycy5Ub0RhdGVUaW1lKGNob2ljZSBhcyBGSElSLmluc3RhbnQpLCBGSElSSGVscGVycy5Ub0RhdGVUaW1lKGNob2ljZSBhcyBGSElSLmluc3RhbnQpXQ0KCQl3aGVuIGNob2ljZSBpcyBGSElSLkFnZSB0aGVuDQoJCSAgSW50ZXJ2YWxbRkhJUkhlbHBlcnMuVG9EYXRlKFBhdGllbnQuYmlydGhEYXRlKSArIEZISVJIZWxwZXJzLlRvUXVhbnRpdHkoY2hvaWNlIGFzIEZISVIuQWdlKSwNCgkJCSAgRkhJUkhlbHBlcnMuVG9EYXRlKFBhdGllbnQuYmlydGhEYXRlKSArIEZISVJIZWxwZXJzLlRvUXVhbnRpdHkoY2hvaWNlIGFzIEZISVIuQWdlKSArIDEgeWVhcikNCgkJd2hlbiBjaG9pY2UgaXMgRkhJUi5SYW5nZSB0aGVuDQoJCSAgSW50ZXJ2YWxbRkhJUkhlbHBlcnMuVG9EYXRlKFBhdGllbnQuYmlydGhEYXRlKSArIEZISVJIZWxwZXJzLlRvUXVhbnRpdHkoKGNob2ljZSBhcyBGSElSLlJhbmdlKS5sb3cpLA0KCQkJICBGSElSSGVscGVycy5Ub0RhdGUoUGF0aWVudC5iaXJ0aERhdGUpICsgRkhJUkhlbHBlcnMuVG9RdWFudGl0eSgoY2hvaWNlIGFzIEZISVIuUmFuZ2UpLmhpZ2gpICsgMSB5ZWFyKQ0KCQl3aGVuIGNob2ljZSBpcyBGSElSLlRpbWluZyB0aGVuDQoJCSAgTWVzc2FnZShudWxsIGFzIEludGVydmFsPERhdGVUaW1lPiwgdHJ1ZSwgJzEnLCAnRXJyb3InLCAnQ2Fubm90IGNvbXB1dGUgYSBzaW5nbGUgaW50ZXJ2YWwgZnJvbSBhIFRpbWluZyB0eXBlJykNCiAgICB3aGVuIGNob2ljZSBpcyBGSElSLnN0cmluZyB0aGVuDQogICAgICBNZXNzYWdlKG51bGwgYXMgSW50ZXJ2YWw8RGF0ZVRpbWU+LCB0cnVlLCAnMScsICdFcnJvcicsICdDYW5ub3QgY29tcHV0ZSBhbiBpbnRlcnZhbCBmcm9tIGEgU3RyaW5nIHZhbHVlJykNCgkJZWxzZQ0KCQkJbnVsbCBhcyBJbnRlcnZhbDxEYXRlVGltZT4NCgllbmQNCg0KZGVmaW5lIGZ1bmN0aW9uICJUb0RhdGVJbnRlcnZhbCIocGVyaW9kIEZISVIuUGVyaW9kKToNCiAgSW50ZXJ2YWxbZGF0ZSBmcm9tIHBlcmlvZC5zdGFydCwgZGF0ZSBmcm9tIHBlcmlvZC5lbmRdDQoNCmRlZmluZSBmdW5jdGlvbiAiR2V0TG9jYXRpb24iKHJlZmVyZW5jZSBSZWZlcmVuY2UgKToNCiAgc2luZ2xldG9uIGZyb20gKA0KCVtMb2NhdGlvbl0gTG9jYXRpb25zDQoJCXdoZXJlIExvY2F0aW9ucy5pZCA9IEdldElkKHJlZmVyZW5jZS5yZWZlcmVuY2UpDQogICkNCg0KZGVmaW5lIGZ1bmN0aW9uICJHZXRJZCIodXJpIFN0cmluZyApOg0KICBMYXN0KFNwbGl0KHVyaSwgJy8nKSk="
    }
  ]
}