{
  "resourceType" : "Library",
  "id" : "IMMZD5DTRabiesContraindicationsLogic",
  "meta" : {
    "profile" : ["http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary",
    "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary",
    "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library",
    "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module"]
  },
  "text" : {
    "status" : "extensions",
    "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n<div>\n    <table class=\"grid dict\">\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Title: </b></th>\n            <td style=\"padding-left: 4px;\">IMMZD5DTRabiesContraindicationsLogic</td>\n        </tr>\n        \n\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Id: </b></th>\n            <td style=\"padding-left: 4px;\">IMMZD5DTRabiesContraindicationsLogic</td>\n        </tr>\n        \n\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Version: </b></th>\n            <td style=\"padding-left: 4px;\">1.0.0</td>\n        </tr>\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Url: </b></th>\n            <td style=\"padding-left: 4px;\"><a href=\"Library-IMMZD5DTRabiesContraindicationsLogic.html\">IMMZD5DTRabiesContraindicationsLogic</a></td>\n        </tr>\n        \n\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Status: </b></th>\n            <td style=\"padding-left: 4px;\">draft</td>\n        </tr>\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Type: </b></th>\n            <td style=\"padding-left: 4px;\">\n                \n                    \n                        \n                        <p style=\"margin-bottom: 5px;\">\n                            <b>system: </b> <span><a href=\"http://terminology.hl7.org/7.1.0/CodeSystem-library-type.html\">http://terminology.hl7.org/CodeSystem/library-type</a></span>\n                        </p>\n                        \n                        \n                        <p style=\"margin-bottom: 5px;\">\n                            <b>code: </b> <span>logic-library</span>\n                        </p>\n                        \n                        \n                    \n                \n                \n            </td>\n        </tr>\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Date: </b></th>\n            <td style=\"padding-left: 4px;\">2026-03-31 13:54:17+0000</td>\n        </tr>\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Publisher: </b></th>\n            <td style=\"padding-left: 4px;\">WHO</td>\n        </tr>\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Description: </b></th>\n            <td style=\"padding-left: 4px;\"><div><p>This library defines decision support logic for the IMMZ.D5.DT.Rabies contraindications decision table in the Immunization CPG</p>\n</div></td>\n        </tr>\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Related Artifacts: </b></th>\n            <td style=\"padding-left: 4px;\">\n                \n                \n                \n                <p><b>Dependencies</b></p>\n                <ul>\n                  \n                    <li><a href=\"Library-IMMZD5DTRabiesEncounterElements.html\">IMMZD5DTRabiesEncounterElements</a></li>\n                  \n                </ul>\n                \n                \n                \n                \n                \n            </td>\n        </tr>\n        \n\n        \n        <tr>\n          <th scope=\"row\"><b>Parameters: </b></th>\n          <td style=\"padding-left: 4px;\">\n            <table class=\"grid-dict\">\n              <tr><th><b>Name</b></th><th><b>Type</b></th><th><b>Min</b></th><th><b>Max</b></th><th><b>In/Out</b></th></tr>\n              \n                <tr><th>Today</th><th>date</th><th>0</th><th>1</th><th>In</th></tr>\n              \n                <tr><th>Patient</th><th>Patient</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Draft Medication Request ID for Rabies dose</th><th>id</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Clinical judgement is required. Create a clinical note</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Clinical judgement is required. Create a clinical note Guidance</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Guidance</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Has Guidance</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Test Validation</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n            </table>\n          </td>\n        </tr>\n        \n\n        \n\n        \n        \n        <tr>\n          <td colspan=\"2\">\n            <table>\n              <tr><th><a id=\"cql-content\"><b>Content: </b></a> text/cql</th></tr>\n              <tr><td><pre><code class=\"language-cql\">/*\n * Library: IMMZD5DTRabiesContraindicationsLogic (IMMZ.D5.DT.Rabies contraindications)\n * Rule: Check for contraindications before administering the vaccine(s) due\n * Decision Table: IMMZ.D5.DT.Rabies contraindications\n * Trigger: IMMZ.D5 Determine vaccine(s) to be administered based on contraindications\n */\nlibrary IMMZD5DTRabiesContraindicationsLogic\n\nusing FHIR version '4.0.1'\ninclude FHIRHelpers version '4.0.1'\n\ninclude IMMZD5DTRabiesEncounterElements called Encounter\n\nparameter Today Date default Today()\n\ncontext Patient\n\n/*\n  @dynamicValue: Draft Medication Request ID for Rabies dose\n  */\n  define &quot;Draft Medication Request ID for Rabies dose&quot;:\n    First(Encounter.&quot;Draft Medication Request for Rabies dose&quot;).id\n\n\n/*\n@dynamicValue: Guidance\n*/\ndefine &quot;Guidance&quot;:\n  case \n    when &quot;Clinical judgement is required. Create a clinical note&quot; then &quot;Clinical judgement is required. Create a clinical note Guidance&quot; \n    else ''\n  end\n  \ndefine &quot;Has Guidance&quot;:\n  &quot;Guidance&quot; is not null and &quot;Guidance&quot; != ''\n\n/*\n@output: Clinical judgement is required. Create a clinical note\n@pseudocode: &quot;Immunization recommendation status&quot; = &quot;Further evaluation needed&quot;\n*/\ndefine &quot;Clinical judgement is required. Create a clinical note&quot;:\n  Encounter.&quot;The client has history of severe allergic reactions&quot;\n\n/*\n@output: Clinical judgement is required. Create a clinical note Guidance\n@guidance: Check if the client has a history of severe hypersensitivity to any of the components or to excipients listed by the vaccine manufacturer. If so, provide an alternative rabies vaccine product for PreP.\n*/\ndefine &quot;Clinical judgement is required. Create a clinical note Guidance&quot;:\n  'Check if the client has a history of severe hypersensitivity to any of the components or to excipients listed by the vaccine manufacturer. If so, provide an alternative rabies vaccine product for PreP.'\n\n\n/*\n@test: Test expected results based on example patients\n*/\ndefine &quot;Test Validation&quot;:\n  case\n    when Patient.id = 'Rabies17.1' then &quot;Clinical judgement is required. Create a clinical note&quot; and &quot;Guidance&quot; = 'Check if the client has a history of severe hypersensitivity to any of the components or to excipients listed by the vaccine manufacturer. If so, provide an alternative rabies vaccine product for PreP.'\n    else 'No test case set'\n  end\n</code></pre></td></tr>\n            </table>\n          </td>\n        </tr>\n        \n        \n        \n    </table>\n</div>\n</div>"
  },
  "extension" : [{
    "url" : "http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability",
    "valueCode" : "computable"
  }],
  "url" : "http://smart.who.int/immunizations/Library/IMMZD5DTRabiesContraindicationsLogic",
  "version" : "1.0.0",
  "name" : "IMMZD5DTRabiesContraindicationsLogic",
  "title" : "IMMZD5DTRabiesContraindicationsLogic",
  "status" : "draft",
  "experimental" : false,
  "type" : {
    "coding" : [{
      "system" : "http://terminology.hl7.org/CodeSystem/library-type",
      "code" : "logic-library"
    }]
  },
  "date" : "2026-03-31T13:54:17+00:00",
  "publisher" : "WHO",
  "contact" : [{
    "name" : "WHO",
    "telecom" : [{
      "system" : "url",
      "value" : "http://who.int"
    }]
  }],
  "description" : "This library defines decision support logic for the IMMZ.D5.DT.Rabies contraindications decision table in the Immunization CPG",
  "relatedArtifact" : [{
    "type" : "depends-on",
    "display" : "Library Encounter",
    "resource" : "http://smart.who.int/immunizations/Library/IMMZD5DTRabiesEncounterElements"
  }],
  "parameter" : [{
    "name" : "Today",
    "use" : "in",
    "min" : 0,
    "max" : "1",
    "type" : "date"
  },
  {
    "name" : "Patient",
    "use" : "out",
    "min" : 0,
    "max" : "1",
    "type" : "Patient"
  },
  {
    "name" : "Draft Medication Request ID for Rabies dose",
    "use" : "out",
    "min" : 0,
    "max" : "1",
    "type" : "id"
  },
  {
    "name" : "Clinical judgement is required. Create a clinical note",
    "use" : "out",
    "min" : 0,
    "max" : "1",
    "type" : "boolean"
  },
  {
    "name" : "Clinical judgement is required. Create a clinical note Guidance",
    "use" : "out",
    "min" : 0,
    "max" : "1",
    "type" : "string"
  },
  {
    "name" : "Guidance",
    "use" : "out",
    "min" : 0,
    "max" : "1",
    "type" : "string"
  },
  {
    "name" : "Has Guidance",
    "use" : "out",
    "min" : 0,
    "max" : "1",
    "type" : "boolean"
  },
  {
    "name" : "Test Validation",
    "use" : "out",
    "min" : 0,
    "max" : "1",
    "type" : "Resource"
  }],
  "content" : [{
    "contentType" : "text/cql",
    "data" : "LyoKICogTGlicmFyeTogSU1NWkQ1RFRSYWJpZXNDb250cmFpbmRpY2F0aW9uc0xvZ2ljIChJTU1aLkQ1LkRULlJhYmllcyBjb250cmFpbmRpY2F0aW9ucykKICogUnVsZTogQ2hlY2sgZm9yIGNvbnRyYWluZGljYXRpb25zIGJlZm9yZSBhZG1pbmlzdGVyaW5nIHRoZSB2YWNjaW5lKHMpIGR1ZQogKiBEZWNpc2lvbiBUYWJsZTogSU1NWi5ENS5EVC5SYWJpZXMgY29udHJhaW5kaWNhdGlvbnMKICogVHJpZ2dlcjogSU1NWi5ENSBEZXRlcm1pbmUgdmFjY2luZShzKSB0byBiZSBhZG1pbmlzdGVyZWQgYmFzZWQgb24gY29udHJhaW5kaWNhdGlvbnMKICovCmxpYnJhcnkgSU1NWkQ1RFRSYWJpZXNDb250cmFpbmRpY2F0aW9uc0xvZ2ljCgp1c2luZyBGSElSIHZlcnNpb24gJzQuMC4xJwppbmNsdWRlIEZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJwoKaW5jbHVkZSBJTU1aRDVEVFJhYmllc0VuY291bnRlckVsZW1lbnRzIGNhbGxlZCBFbmNvdW50ZXIKCnBhcmFtZXRlciBUb2RheSBEYXRlIGRlZmF1bHQgVG9kYXkoKQoKY29udGV4dCBQYXRpZW50CgovKgogIEBkeW5hbWljVmFsdWU6IERyYWZ0IE1lZGljYXRpb24gUmVxdWVzdCBJRCBmb3IgUmFiaWVzIGRvc2UKICAqLwogIGRlZmluZSAiRHJhZnQgTWVkaWNhdGlvbiBSZXF1ZXN0IElEIGZvciBSYWJpZXMgZG9zZSI6CiAgICBGaXJzdChFbmNvdW50ZXIuIkRyYWZ0IE1lZGljYXRpb24gUmVxdWVzdCBmb3IgUmFiaWVzIGRvc2UiKS5pZAoKCi8qCkBkeW5hbWljVmFsdWU6IEd1aWRhbmNlCiovCmRlZmluZSAiR3VpZGFuY2UiOgogIGNhc2UgCiAgICB3aGVuICJDbGluaWNhbCBqdWRnZW1lbnQgaXMgcmVxdWlyZWQuIENyZWF0ZSBhIGNsaW5pY2FsIG5vdGUiIHRoZW4gIkNsaW5pY2FsIGp1ZGdlbWVudCBpcyByZXF1aXJlZC4gQ3JlYXRlIGEgY2xpbmljYWwgbm90ZSBHdWlkYW5jZSIgCiAgICBlbHNlICcnCiAgZW5kCiAgCmRlZmluZSAiSGFzIEd1aWRhbmNlIjoKICAiR3VpZGFuY2UiIGlzIG5vdCBudWxsIGFuZCAiR3VpZGFuY2UiICE9ICcnCgovKgpAb3V0cHV0OiBDbGluaWNhbCBqdWRnZW1lbnQgaXMgcmVxdWlyZWQuIENyZWF0ZSBhIGNsaW5pY2FsIG5vdGUKQHBzZXVkb2NvZGU6ICJJbW11bml6YXRpb24gcmVjb21tZW5kYXRpb24gc3RhdHVzIiA9ICJGdXJ0aGVyIGV2YWx1YXRpb24gbmVlZGVkIgoqLwpkZWZpbmUgIkNsaW5pY2FsIGp1ZGdlbWVudCBpcyByZXF1aXJlZC4gQ3JlYXRlIGEgY2xpbmljYWwgbm90ZSI6CiAgRW5jb3VudGVyLiJUaGUgY2xpZW50IGhhcyBoaXN0b3J5IG9mIHNldmVyZSBhbGxlcmdpYyByZWFjdGlvbnMiCgovKgpAb3V0cHV0OiBDbGluaWNhbCBqdWRnZW1lbnQgaXMgcmVxdWlyZWQuIENyZWF0ZSBhIGNsaW5pY2FsIG5vdGUgR3VpZGFuY2UKQGd1aWRhbmNlOiBDaGVjayBpZiB0aGUgY2xpZW50IGhhcyBhIGhpc3Rvcnkgb2Ygc2V2ZXJlIGh5cGVyc2Vuc2l0aXZpdHkgdG8gYW55IG9mIHRoZSBjb21wb25lbnRzIG9yIHRvIGV4Y2lwaWVudHMgbGlzdGVkIGJ5IHRoZSB2YWNjaW5lIG1hbnVmYWN0dXJlci4gSWYgc28sIHByb3ZpZGUgYW4gYWx0ZXJuYXRpdmUgcmFiaWVzIHZhY2NpbmUgcHJvZHVjdCBmb3IgUHJlUC4KKi8KZGVmaW5lICJDbGluaWNhbCBqdWRnZW1lbnQgaXMgcmVxdWlyZWQuIENyZWF0ZSBhIGNsaW5pY2FsIG5vdGUgR3VpZGFuY2UiOgogICdDaGVjayBpZiB0aGUgY2xpZW50IGhhcyBhIGhpc3Rvcnkgb2Ygc2V2ZXJlIGh5cGVyc2Vuc2l0aXZpdHkgdG8gYW55IG9mIHRoZSBjb21wb25lbnRzIG9yIHRvIGV4Y2lwaWVudHMgbGlzdGVkIGJ5IHRoZSB2YWNjaW5lIG1hbnVmYWN0dXJlci4gSWYgc28sIHByb3ZpZGUgYW4gYWx0ZXJuYXRpdmUgcmFiaWVzIHZhY2NpbmUgcHJvZHVjdCBmb3IgUHJlUC4nCgoKLyoKQHRlc3Q6IFRlc3QgZXhwZWN0ZWQgcmVzdWx0cyBiYXNlZCBvbiBleGFtcGxlIHBhdGllbnRzCiovCmRlZmluZSAiVGVzdCBWYWxpZGF0aW9uIjoKICBjYXNlCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnUmFiaWVzMTcuMScgdGhlbiAiQ2xpbmljYWwganVkZ2VtZW50IGlzIHJlcXVpcmVkLiBDcmVhdGUgYSBjbGluaWNhbCBub3RlIiBhbmQgIkd1aWRhbmNlIiA9ICdDaGVjayBpZiB0aGUgY2xpZW50IGhhcyBhIGhpc3Rvcnkgb2Ygc2V2ZXJlIGh5cGVyc2Vuc2l0aXZpdHkgdG8gYW55IG9mIHRoZSBjb21wb25lbnRzIG9yIHRvIGV4Y2lwaWVudHMgbGlzdGVkIGJ5IHRoZSB2YWNjaW5lIG1hbnVmYWN0dXJlci4gSWYgc28sIHByb3ZpZGUgYW4gYWx0ZXJuYXRpdmUgcmFiaWVzIHZhY2NpbmUgcHJvZHVjdCBmb3IgUHJlUC4nCiAgICBlbHNlICdObyB0ZXN0IGNhc2Ugc2V0JwogIGVuZAo="
  }]
}