Common CQL Artifacts for FHIR (US-Based)
1.0.0-ballot - STU 1 Ballot
Common CQL Artifacts for FHIR (US-Based), published by HL7 International / Clinical Decision Support. 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/us-cql-ig/ and changes regularly. See the Directory of published versions
Page standards status: Informative | Maturity Level: 3 |
{
"resourceType" : "Library",
"id" : "GMTPInitialExpressions",
"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;\">Expression Library for the Genetic/Molecular testing preauthorization Example</td>\n </tr>\n \n\n \n \n <tr>\n <th scope=\"row\"><b>Id: </b></th>\n <td style=\"padding-left: 4px;\">GMTPInitialExpressions</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-ballot</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-GMTPInitialExpressions.html\">Expression Library for the Genetic/Molecular testing preauthorization Example</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 <tr>\n <th scope=\"row\"><b>Experimental: </b></th>\n <td style=\"padding-left: 4px;\">true</td>\n </tr>\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/6.5.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;\">2025-09-10 20:00:05+0000</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Publisher: </b></th>\n <td style=\"padding-left: 4px;\">HL7 International / Clinical Decision Support</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Description: </b></th>\n <td style=\"padding-left: 4px;\"><div><p>Initial expressions for use in populating answers to questions in the Genetic/Molecular testing preauthorization example questionnaire.</p>\n</div></td>\n </tr>\n \n\n \n\n \n\n \n\n \n <tr>\n <th scope=\"row\"><b>Jurisdiction: </b></th>\n <td style=\"padding-left: 4px;\">US</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 <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\">library GMTPInitialExpressions\n\nusing USCore version '7.0.0'\nusing FHIR version '4.0.1'\n\ninclude hl7.fhir.uv.cql.FHIRHelpers version '4.0.1' called FHIRHelpers\ninclude USCoreCommon called UC\ninclude USCoreElements called UCE\n\ncodesystem "LOINC": 'http://loinc.org'\ncodesystem "Identifier Type": 'http://terminology.hl7.org/CodeSystem/v2-0203'\ncode "Member Number": 'MB' from "Identifier Type"\n\nparameter "Coverage" FHIR.Coverage\nparameter "ServiceRequest" FHIR.ServiceRequest\n\ncontext Patient\n\ndefine "All Problem List Items":\n UCE."All Problem List Items"\n\n/*\n@question: Patient history (including age at diagnosis):\nTODO: Determine whether we should be considering encounter diagnoses and/or health concerns\nTODO: Determine whether age at onset is actually relevant, or if we would, in an automated context, just return the Condition resource\nTODO: Does "age at diagnosis" mean "age at onset" or is it really asking for when the diagnosis was recorded?\nTODO: Is there a version of patient history that is reusable here?\n*/\ndefine "Patient history":\n UCE."All Problem List Items" C\n let prevalence: C.prevalenceInterval()\n where C.isConfirmed()\n return {\n diagnosis: C.code.display,\n ageAtOnset: ToString(AgeInYearsAt(start of prevalence)),\n onset: ToString(start of prevalence),\n abatement: ToString(if prevalence.hasEnd() then end of prevalence else null)\n }\n\n/*\n@linkId: history|patient-history\n*/\ndefine "Patient history including age at diagnosis":\n "Patient history" H\n return H.diagnosis & (', ' + H.ageAtOnset + ' yrs') & (', abated ' + H.abatement)\n\ndefine "Billing Provider Name":\n "Billing Provider".name\n\ndefine "Billing Provider Phone":\n UC.Mobile("Billing Provider".telecom).value\n\ndefine "Billing Provider Address":\n { 'TODO: remove hard-coded address' }\n\ndefine "Retrieve Member Coverage test parameter":\n // When executing CQL with the VSCode extension retrieve the resource specific for the test case\n // the list of resource ids match the resources from the test case folders\n singleton from ([FHIR.Coverage] CV where CV.id in {\n 'Coverage-example-GMTP', // testcase: GMTP-example-patient-2\n 'coverage-GMTP-1' // testcase: USCorePatient-GMTP-1\n })\n\ndefine "Member Coverage":\n Coalesce(\n Coverage,\n "Retrieve Member Coverage test parameter"\n )\n\ndefine "Retrieve Service Request test parameter":\n // When executing CQL with the VSCode extension retrieve the resource specific for the test case\n // the list of resource ids match the resources from the test case folders\n singleton from ([FHIR.ServiceRequest] SR where SR.id in {\n 'ServiceRequest-example-1-GMTP', // testcase: GMTP-example-patient-2\n 'service-request-USCorePatient-GMTP-1' // testcase: USCorePatient-GMTP-1\n })\n\ndefine "Most Recent ServiceRequest":\n Coalesce(\n ServiceRequest,\n "Retrieve Service Request test parameter"\n )\n\ndefine "Billing Provider":\n UCE.BillingProvider("Member Coverage")\n\ndefine "Billing Provider NPI":\n "Billing Provider".identifier I \n where I.system = 'http://hl7.org/fhir/sid/us-npi'\n return I.value\n\ndefine "Billing Provider Fax":\n "Billing Provider".telecom T\n where T.system = 'fax'\n return T.value\n\ndefine "Date of Service":\n "Most Recent ServiceRequest".occurrence.value\n\ndefine "Requested Test":\n "Most Recent ServiceRequest".code\n\ndefine "Test ID":\n Combine("Requested Test".coding.code.value, ', ') \n\ndefine "Test name":\n Combine("Requested Test".coding.display.value, ', ')\n\ndefine "ALL ICD and CPT Test Codes":\n "Test ICD Codes" union "Test CPT Codes"\n\ndefine "Test ICD Codes":\n "Requested Test".coding C\n where C.system.value = 'http://hl7.org/fhir/sid/icd-10-cm'\n return C.code.value\n \ndefine "Test CPT Codes":\n "Requested Test".coding C\n where C.system.value = 'http://www.ama-assn.org/go/cpt'\n return C.code.value\n\ndefine "Test Related Condition":\n UCE.RelatedCondition("Most Recent ServiceRequest")\n //.reasonReference changed to .reason in FHIR R5\n\ndefine "Diagnosis Descriptions":\n "Test Related Condition".code.coding.display.value\n\ndefine "Billing Provider different from Servicing Provider":\n if "Billing Provider".id != First(UCE.ServicingProvider("Most Recent ServiceRequest").id) then\n 'Yes'\n else \n 'No'\n\ndefine "Clinical Trial Organization":\n First(UCE."Clinical Trial Organization" O \n with "Clinical Trial" T such that EndsWith(T.sponsor.reference, O.id)) \n //in FHIR R5 T.associatedParty instead of T.sponsor \n\ndefine "BillingProvider is Clinical Trial Organization":\n "Billing Provider" = "Clinical Trial Organization"\n\n//TODO does not get populated properly\ndefine "Part of clinical trial":\n if "Is Research Subject" and "BillingProvider is Clinical Trial Organization" then\n 'Yes'\n else\n 'No'\n\ndefine "Is Research Subject":\n exists("Research Subject")\n\ndefine "Research Subject":\n UCE."Research Subject"\n //ResearchSubject.individual is from FHIR version v4.0.1 and has been replaced by R.subject in FHIR R5\n\ndefine "Clinical Trial":\n UCE."All Clinical Trials" R \n with "Research Subject" S such that EndsWith(S.study.reference, R.id)\n with "Test Related Condition" C such that C.code in R.condition\n\ndefine "Clinical Trial ID":\n "Clinical Trial".identifier C\n where C.system = 'https://clinicaltrials.gov'\n return C.value.value\n\ndefine "Previous genetic testing for condition":\n from \n UCE."All ServiceRequests" S,\n ServiceRequest SR\n where S.occurrence before SR.occurrence\n and S.id != SR.id\n and S.reasonReference = SR.reasonReference\n return S.id.value\n\n//define "Family history of genetic testing"\n//too general to prefill?</code></pre></td></tr>\n </table>\n </td>\n </tr>\n \n \n \n \n \n <tr>\n <td colspan=\"2\">\n <table>\n <tr><th><b>Content: </b> application/elm+xml</th></tr>\n <tr><td><pre><code/></pre></td></tr>\n </table>\n </td>\n </tr>\n \n \n </table>\n</div>\n</div>"
},
"extension" : [
{
"url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
"valueInteger" : 3
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
"valueCode" : "cds"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
"valueCode" : "informative"
}
],
"url" : "http://hl7.org/fhir/us/cql/Library/GMTPInitialExpressions",
"version" : "1.0.0-ballot",
"name" : "GMTPInitialExpressions",
"title" : "Expression Library for the Genetic/Molecular testing preauthorization Example",
"status" : "draft",
"experimental" : true,
"type" : {
"coding" : [
{
"system" : "http://terminology.hl7.org/CodeSystem/library-type",
"code" : "logic-library"
}
]
},
"date" : "2025-09-10T20:00:05+00:00",
"publisher" : "HL7 International / Clinical Decision Support",
"contact" : [
{
"telecom" : [
{
"system" : "url",
"value" : "http://www.hl7.org/Special/committees/dss"
}
]
}
],
"description" : "Initial expressions for use in populating answers to questions in the Genetic/Molecular testing preauthorization example questionnaire.",
"jurisdiction" : [
{
"coding" : [
{
"system" : "urn:iso:std:iso:3166",
"code" : "US",
"display" : "United States of America"
}
]
}
],
"content" : [
{
"contentType" : "text/cql",
"data" : "bGlicmFyeSBHTVRQSW5pdGlhbEV4cHJlc3Npb25zCgp1c2luZyBVU0NvcmUgdmVyc2lvbiAnNy4wLjAnCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIGhsNy5maGlyLnV2LmNxbC5GSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScgY2FsbGVkIEZISVJIZWxwZXJzCmluY2x1ZGUgVVNDb3JlQ29tbW9uIGNhbGxlZCBVQwppbmNsdWRlIFVTQ29yZUVsZW1lbnRzIGNhbGxlZCBVQ0UKCmNvZGVzeXN0ZW0gIkxPSU5DIjogJ2h0dHA6Ly9sb2luYy5vcmcnCmNvZGVzeXN0ZW0gIklkZW50aWZpZXIgVHlwZSI6ICdodHRwOi8vdGVybWlub2xvZ3kuaGw3Lm9yZy9Db2RlU3lzdGVtL3YyLTAyMDMnCmNvZGUgIk1lbWJlciBOdW1iZXIiOiAnTUInIGZyb20gIklkZW50aWZpZXIgVHlwZSIKCnBhcmFtZXRlciAiQ292ZXJhZ2UiIEZISVIuQ292ZXJhZ2UKcGFyYW1ldGVyICJTZXJ2aWNlUmVxdWVzdCIgRkhJUi5TZXJ2aWNlUmVxdWVzdAoKY29udGV4dCBQYXRpZW50CgpkZWZpbmUgIkFsbCBQcm9ibGVtIExpc3QgSXRlbXMiOgogIFVDRS4iQWxsIFByb2JsZW0gTGlzdCBJdGVtcyIKCi8qCkBxdWVzdGlvbjogUGF0aWVudCBoaXN0b3J5IChpbmNsdWRpbmcgYWdlIGF0IGRpYWdub3Npcyk6ClRPRE86IERldGVybWluZSB3aGV0aGVyIHdlIHNob3VsZCBiZSBjb25zaWRlcmluZyBlbmNvdW50ZXIgZGlhZ25vc2VzIGFuZC9vciBoZWFsdGggY29uY2VybnMKVE9ETzogRGV0ZXJtaW5lIHdoZXRoZXIgYWdlIGF0IG9uc2V0IGlzIGFjdHVhbGx5IHJlbGV2YW50LCBvciBpZiB3ZSB3b3VsZCwgaW4gYW4gYXV0b21hdGVkIGNvbnRleHQsIGp1c3QgcmV0dXJuIHRoZSBDb25kaXRpb24gcmVzb3VyY2UKVE9ETzogRG9lcyAiYWdlIGF0IGRpYWdub3NpcyIgbWVhbiAiYWdlIGF0IG9uc2V0IiBvciBpcyBpdCByZWFsbHkgYXNraW5nIGZvciB3aGVuIHRoZSBkaWFnbm9zaXMgd2FzIHJlY29yZGVkPwpUT0RPOiBJcyB0aGVyZSBhIHZlcnNpb24gb2YgcGF0aWVudCBoaXN0b3J5IHRoYXQgaXMgcmV1c2FibGUgaGVyZT8KKi8KZGVmaW5lICJQYXRpZW50IGhpc3RvcnkiOgogIFVDRS4iQWxsIFByb2JsZW0gTGlzdCBJdGVtcyIgQwogICAgbGV0IHByZXZhbGVuY2U6IEMucHJldmFsZW5jZUludGVydmFsKCkKICAgIHdoZXJlIEMuaXNDb25maXJtZWQoKQogICAgcmV0dXJuIHsKICAgICAgZGlhZ25vc2lzOiBDLmNvZGUuZGlzcGxheSwKICAgICAgYWdlQXRPbnNldDogVG9TdHJpbmcoQWdlSW5ZZWFyc0F0KHN0YXJ0IG9mIHByZXZhbGVuY2UpKSwKICAgICAgb25zZXQ6IFRvU3RyaW5nKHN0YXJ0IG9mIHByZXZhbGVuY2UpLAogICAgICBhYmF0ZW1lbnQ6IFRvU3RyaW5nKGlmIHByZXZhbGVuY2UuaGFzRW5kKCkgdGhlbiBlbmQgb2YgcHJldmFsZW5jZSBlbHNlIG51bGwpCiAgICB9CgovKgpAbGlua0lkOiBoaXN0b3J5fHBhdGllbnQtaGlzdG9yeQoqLwpkZWZpbmUgIlBhdGllbnQgaGlzdG9yeSBpbmNsdWRpbmcgYWdlIGF0IGRpYWdub3NpcyI6CiAgIlBhdGllbnQgaGlzdG9yeSIgSAogICAgcmV0dXJuIEguZGlhZ25vc2lzICYgKCcsICcgKyBILmFnZUF0T25zZXQgKyAnIHlycycpICYgKCcsIGFiYXRlZCAnICsgSC5hYmF0ZW1lbnQpCgpkZWZpbmUgIkJpbGxpbmcgUHJvdmlkZXIgTmFtZSI6CiAgIkJpbGxpbmcgUHJvdmlkZXIiLm5hbWUKCmRlZmluZSAiQmlsbGluZyBQcm92aWRlciBQaG9uZSI6CiAgVUMuTW9iaWxlKCJCaWxsaW5nIFByb3ZpZGVyIi50ZWxlY29tKS52YWx1ZQoKZGVmaW5lICJCaWxsaW5nIFByb3ZpZGVyIEFkZHJlc3MiOgogIHsgJ1RPRE86IHJlbW92ZSBoYXJkLWNvZGVkIGFkZHJlc3MnIH0KCmRlZmluZSAiUmV0cmlldmUgTWVtYmVyIENvdmVyYWdlIHRlc3QgcGFyYW1ldGVyIjoKICAvLyBXaGVuIGV4ZWN1dGluZyBDUUwgd2l0aCB0aGUgVlNDb2RlIGV4dGVuc2lvbiByZXRyaWV2ZSB0aGUgcmVzb3VyY2Ugc3BlY2lmaWMgZm9yIHRoZSB0ZXN0IGNhc2UKICAvLyAgIHRoZSBsaXN0IG9mIHJlc291cmNlIGlkcyBtYXRjaCB0aGUgcmVzb3VyY2VzIGZyb20gdGhlIHRlc3QgY2FzZSBmb2xkZXJzCiAgc2luZ2xldG9uIGZyb20gKFtGSElSLkNvdmVyYWdlXSBDViB3aGVyZSBDVi5pZCBpbiB7CiAgICAnQ292ZXJhZ2UtZXhhbXBsZS1HTVRQJywgLy8gdGVzdGNhc2U6IEdNVFAtZXhhbXBsZS1wYXRpZW50LTIKICAgICdjb3ZlcmFnZS1HTVRQLTEnICAgICAgICAvLyB0ZXN0Y2FzZTogVVNDb3JlUGF0aWVudC1HTVRQLTEKICB9KQoKZGVmaW5lICJNZW1iZXIgQ292ZXJhZ2UiOgogIENvYWxlc2NlKAogICAgQ292ZXJhZ2UsCiAgICAiUmV0cmlldmUgTWVtYmVyIENvdmVyYWdlIHRlc3QgcGFyYW1ldGVyIgogICkKCmRlZmluZSAiUmV0cmlldmUgU2VydmljZSBSZXF1ZXN0IHRlc3QgcGFyYW1ldGVyIjoKICAvLyBXaGVuIGV4ZWN1dGluZyBDUUwgd2l0aCB0aGUgVlNDb2RlIGV4dGVuc2lvbiByZXRyaWV2ZSB0aGUgcmVzb3VyY2Ugc3BlY2lmaWMgZm9yIHRoZSB0ZXN0IGNhc2UKICAvLyAgIHRoZSBsaXN0IG9mIHJlc291cmNlIGlkcyBtYXRjaCB0aGUgcmVzb3VyY2VzIGZyb20gdGhlIHRlc3QgY2FzZSBmb2xkZXJzCiAgc2luZ2xldG9uIGZyb20gKFtGSElSLlNlcnZpY2VSZXF1ZXN0XSBTUiB3aGVyZSBTUi5pZCBpbiB7CiAgICAnU2VydmljZVJlcXVlc3QtZXhhbXBsZS0xLUdNVFAnLCAgICAgICAvLyB0ZXN0Y2FzZTogR01UUC1leGFtcGxlLXBhdGllbnQtMgogICAgJ3NlcnZpY2UtcmVxdWVzdC1VU0NvcmVQYXRpZW50LUdNVFAtMScgLy8gdGVzdGNhc2U6IFVTQ29yZVBhdGllbnQtR01UUC0xCiAgfSkKCmRlZmluZSAiTW9zdCBSZWNlbnQgU2VydmljZVJlcXVlc3QiOgogIENvYWxlc2NlKAogICAgU2VydmljZVJlcXVlc3QsCiAgICAiUmV0cmlldmUgU2VydmljZSBSZXF1ZXN0IHRlc3QgcGFyYW1ldGVyIgogICkKCmRlZmluZSAiQmlsbGluZyBQcm92aWRlciI6CiAgVUNFLkJpbGxpbmdQcm92aWRlcigiTWVtYmVyIENvdmVyYWdlIikKCmRlZmluZSAiQmlsbGluZyBQcm92aWRlciBOUEkiOgogICJCaWxsaW5nIFByb3ZpZGVyIi5pZGVudGlmaWVyIEkgCiAgd2hlcmUgSS5zeXN0ZW0gPSAnaHR0cDovL2hsNy5vcmcvZmhpci9zaWQvdXMtbnBpJwogIHJldHVybiBJLnZhbHVlCgpkZWZpbmUgIkJpbGxpbmcgUHJvdmlkZXIgRmF4IjoKICAiQmlsbGluZyBQcm92aWRlciIudGVsZWNvbSBUCiAgd2hlcmUgVC5zeXN0ZW0gPSAnZmF4JwogIHJldHVybiBULnZhbHVlCgpkZWZpbmUgIkRhdGUgb2YgU2VydmljZSI6CiAgIk1vc3QgUmVjZW50IFNlcnZpY2VSZXF1ZXN0Ii5vY2N1cnJlbmNlLnZhbHVlCgpkZWZpbmUgIlJlcXVlc3RlZCBUZXN0IjoKICAiTW9zdCBSZWNlbnQgU2VydmljZVJlcXVlc3QiLmNvZGUKCmRlZmluZSAiVGVzdCBJRCI6CiAgQ29tYmluZSgiUmVxdWVzdGVkIFRlc3QiLmNvZGluZy5jb2RlLnZhbHVlLCAnLCAnKSAKCmRlZmluZSAiVGVzdCBuYW1lIjoKICAgQ29tYmluZSgiUmVxdWVzdGVkIFRlc3QiLmNvZGluZy5kaXNwbGF5LnZhbHVlLCAnLCAnKQoKZGVmaW5lICJBTEwgSUNEIGFuZCBDUFQgVGVzdCBDb2RlcyI6CiAgICJUZXN0IElDRCBDb2RlcyIgdW5pb24gIlRlc3QgQ1BUIENvZGVzIgoKZGVmaW5lICJUZXN0IElDRCBDb2RlcyI6CiAiUmVxdWVzdGVkIFRlc3QiLmNvZGluZyBDCiAgd2hlcmUgQy5zeXN0ZW0udmFsdWUgPSAnaHR0cDovL2hsNy5vcmcvZmhpci9zaWQvaWNkLTEwLWNtJwogIHJldHVybiBDLmNvZGUudmFsdWUKICAKZGVmaW5lICJUZXN0IENQVCBDb2RlcyI6CiAgIlJlcXVlc3RlZCBUZXN0Ii5jb2RpbmcgQwogIHdoZXJlIEMuc3lzdGVtLnZhbHVlID0gICdodHRwOi8vd3d3LmFtYS1hc3NuLm9yZy9nby9jcHQnCiAgcmV0dXJuIEMuY29kZS52YWx1ZQoKZGVmaW5lICJUZXN0IFJlbGF0ZWQgQ29uZGl0aW9uIjoKICBVQ0UuUmVsYXRlZENvbmRpdGlvbigiTW9zdCBSZWNlbnQgU2VydmljZVJlcXVlc3QiKQogIC8vLnJlYXNvblJlZmVyZW5jZSBjaGFuZ2VkIHRvIC5yZWFzb24gaW4gRkhJUiBSNQoKZGVmaW5lICJEaWFnbm9zaXMgRGVzY3JpcHRpb25zIjoKICAiVGVzdCBSZWxhdGVkIENvbmRpdGlvbiIuY29kZS5jb2RpbmcuZGlzcGxheS52YWx1ZQoKZGVmaW5lICJCaWxsaW5nIFByb3ZpZGVyIGRpZmZlcmVudCBmcm9tIFNlcnZpY2luZyBQcm92aWRlciI6CiAgaWYgIkJpbGxpbmcgUHJvdmlkZXIiLmlkICE9IEZpcnN0KFVDRS5TZXJ2aWNpbmdQcm92aWRlcigiTW9zdCBSZWNlbnQgU2VydmljZVJlcXVlc3QiKS5pZCkgdGhlbgogICdZZXMnCiAgZWxzZSAKICAnTm8nCgpkZWZpbmUgIkNsaW5pY2FsIFRyaWFsIE9yZ2FuaXphdGlvbiI6CiAgRmlyc3QoVUNFLiJDbGluaWNhbCBUcmlhbCBPcmdhbml6YXRpb24iIE8gCiAgICB3aXRoICJDbGluaWNhbCBUcmlhbCIgIFQgc3VjaCB0aGF0IEVuZHNXaXRoKFQuc3BvbnNvci5yZWZlcmVuY2UsIE8uaWQpKSAgCiAvL2luIEZISVIgUjUgVC5hc3NvY2lhdGVkUGFydHkgaW5zdGVhZCBvZiBULnNwb25zb3IgCgpkZWZpbmUgIkJpbGxpbmdQcm92aWRlciBpcyBDbGluaWNhbCBUcmlhbCBPcmdhbml6YXRpb24iOgogICJCaWxsaW5nIFByb3ZpZGVyIiA9ICJDbGluaWNhbCBUcmlhbCBPcmdhbml6YXRpb24iCgovL1RPRE8gZG9lcyBub3QgZ2V0IHBvcHVsYXRlZCBwcm9wZXJseQpkZWZpbmUgIlBhcnQgb2YgY2xpbmljYWwgdHJpYWwiOgogaWYgIklzIFJlc2VhcmNoIFN1YmplY3QiIGFuZCAiQmlsbGluZ1Byb3ZpZGVyIGlzIENsaW5pY2FsIFRyaWFsIE9yZ2FuaXphdGlvbiIgdGhlbgogJ1llcycKIGVsc2UKICdObycKCmRlZmluZSAiSXMgUmVzZWFyY2ggU3ViamVjdCI6CiAgZXhpc3RzKCJSZXNlYXJjaCBTdWJqZWN0IikKCmRlZmluZSAiUmVzZWFyY2ggU3ViamVjdCI6CiAgVUNFLiJSZXNlYXJjaCBTdWJqZWN0IgogICAgIC8vUmVzZWFyY2hTdWJqZWN0LmluZGl2aWR1YWwgaXMgZnJvbSBGSElSIHZlcnNpb24gdjQuMC4xIGFuZCBoYXMgYmVlbiByZXBsYWNlZCBieSBSLnN1YmplY3QgaW4gRkhJUiBSNQoKZGVmaW5lICJDbGluaWNhbCBUcmlhbCI6CiAgVUNFLiJBbGwgQ2xpbmljYWwgVHJpYWxzIiBSIAogICAgd2l0aCAiUmVzZWFyY2ggU3ViamVjdCIgUyBzdWNoIHRoYXQgRW5kc1dpdGgoUy5zdHVkeS5yZWZlcmVuY2UsIFIuaWQpCiAgICB3aXRoICAiVGVzdCBSZWxhdGVkIENvbmRpdGlvbiIgQyBzdWNoIHRoYXQgQy5jb2RlIGluIFIuY29uZGl0aW9uCgpkZWZpbmUgIkNsaW5pY2FsIFRyaWFsIElEIjoKICAiQ2xpbmljYWwgVHJpYWwiLmlkZW50aWZpZXIgQwogIHdoZXJlIEMuc3lzdGVtID0gJ2h0dHBzOi8vY2xpbmljYWx0cmlhbHMuZ292JwogIHJldHVybiBDLnZhbHVlLnZhbHVlCgpkZWZpbmUgIlByZXZpb3VzIGdlbmV0aWMgdGVzdGluZyBmb3IgY29uZGl0aW9uIjoKICBmcm9tIAogICAgVUNFLiJBbGwgU2VydmljZVJlcXVlc3RzIiBTLAogICAgU2VydmljZVJlcXVlc3QgU1IKICB3aGVyZSBTLm9jY3VycmVuY2UgYmVmb3JlIFNSLm9jY3VycmVuY2UKICAgIGFuZCBTLmlkICE9IFNSLmlkCiAgICBhbmQgUy5yZWFzb25SZWZlcmVuY2UgPSBTUi5yZWFzb25SZWZlcmVuY2UKICByZXR1cm4gUy5pZC52YWx1ZQoKLy9kZWZpbmUgIkZhbWlseSBoaXN0b3J5IG9mIGdlbmV0aWMgdGVzdGluZyIKLy90b28gZ2VuZXJhbCB0byBwcmVmaWxsPw=="
},
{
"contentType" : "application/elm+xml"
}
]
}