IG first version

This commit is contained in:
root 2023-09-01 19:00:21 +00:00
parent 60ab43af6d
commit 8aa74e9fdc
12 changed files with 771 additions and 16 deletions

34
input/fsh/bundle.fsh Normal file
View File

@ -0,0 +1,34 @@
Profile: LAC_Bundle
Parent: http://hl7.org/fhir/uv/ips/StructureDefinition/Bundle-uv-ips
Id: lac-bundle
Description: "LACPass Patient Summary Bundle resource. This profile derives from the [International Patient summary](https://build.fhir.org/ig/HL7/fhir-ips/) with customizations for the entries to use the profiles defined in this implementation guide."
* ^url = "https://lacpass.racsel.org/fhir/StructureDefinition/lac-bundle"
// Make use of Composition
* entry[composition].resource 1..1
* entry[composition].resource only LAC_Composition
Instance: LACBundleIPSExample
InstanceOf: LAC_Bundle
Usage: #example
* identifier.system = "urn:ietf:rfc:4122"
* identifier.value = "f50a5146-7d08-4f4d-b7a9-eb8a05d513a0"
* type = #document
* timestamp = "2023-01-15T17:26:43.023+00:00"
* entry[0].fullUrl = "urn:uuid:428e9bed-1f16-4595-91b9-80ae6ac12421"
* entry[=].resource = LACCompositionExample
* entry[+].fullUrl = "urn:uuid:ef333870-0a3a-4ab3-b0ff-6bc191a738c6"
* entry[=].resource = LACPatientExample
* entry[+].fullUrl = "urn:uuid:6fef12e7-64ad-4792-b2ad-5d6b699588fc"
* entry[=].resource = LACImmunizationExample
* entry[+].fullUrl = "urn:uuid:73670837-417b-422f-9f99-46fb28d30985"
* entry[=].resource = 73670837-417b-422f-9f99-46fb28d30985
* entry[+].fullUrl = "urn:uuid:dcc7db1b-29a9-4ad1-b6dd-ac06752d9c26"
* entry[=].resource = dcc7db1b-29a9-4ad1-b6dd-ac06752d9c26
* entry[+].fullUrl = "urn:uuid:d2c23c25-48eb-4e55-a22a-b72787ae1d85"
* entry[=].resource = d2c23c25-48eb-4e55-a22a-b72787ae1d85
* entry[+].fullUrl = "urn:uuid:bd64ca58-bea9-4b3c-aaa0-50e0b7575b79"
* entry[=].resource = bd64ca58-bea9-4b3c-aaa0-50e0b7575b79
* entry[+].fullUrl = "urn:uuid:9d5f17f6-6537-4bbb-a883-a5937a79d10c"
* entry[=].resource = LACOrganizationExample

109
input/fsh/composition.fsh Normal file
View File

@ -0,0 +1,109 @@
Profile: LAC_Composition
Parent: http://hl7.org/fhir/uv/ips/StructureDefinition/Composition-uv-ips
Id: lac-composition
Description: "LACPass Patient Summary Composition resource. This profile derives from the [International Patient summary](https://build.fhir.org/ig/HL7/fhir-ips/) with customizations for the entries to use the profiles defined in this implementation guide."
* ^url = "https://lacpass.racsel.org/fhir/StructureDefinition/lac-compositioin"
// Make use of LAC Patient, LAC Immunization and LAC Organization
* subject 1..1 MS
* subject only Reference(LAC_Patient)
* section[sectionImmunizations] 1..1
* section[sectionImmunizations].entry[immunization] 1..1
* section[sectionImmunizations].entry[immunization] only Reference(LAC_Immunization)
* custodian 1..1
* custodian only Reference(LAC_Organization)
Alias: $loinc = http://loinc.org
Alias: $v2-0203 = http://terminology.hl7.org/CodeSystem/v2-0203
Alias: $DDCC-Example-Test-CodeSystem = http://worldhealthorganization.github.io/ddcc/CodeSystem/DDCC-Example-Test-CodeSystem
Alias: $mms = http://id.who.int/icd11/mms
Alias: $condition-clinical = http://terminology.hl7.org/CodeSystem/condition-clinical
Alias: $condition-ver-status = http://terminology.hl7.org/CodeSystem/condition-ver-status
Alias: $condition-category = http://terminology.hl7.org/CodeSystem/condition-category
Alias: $icd-10 = http://hl7.org/fhir/sid/icd-10
Alias: $sct = http://snomed.info/sct
Alias: $atc = http://www.whocc.no/atc
Alias: $standardterms = http://standardterms.edqm.eu
Alias: $dose-rate-type = http://terminology.hl7.org/CodeSystem/dose-rate-type
Alias: $allergyintolerance-clinical = http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical
Alias: $allergyintolerance-verification = http://terminology.hl7.org/CodeSystem/allergyintolerance-verification
Instance: LACCompositionExample
InstanceOf: LAC_Composition
Usage: #example
* status = #final
* type = $loinc#60591-5 "Patient Summary Document"
* subject = Reference(LACPatientExample)
* date = "2023-01-15T17:26:43+00:00"
* author = Reference(LACOrganizationExample)
* title = "Patient Summary as of 01/15/2023"
* confidentiality = #N
* custodian = Reference(LACOrganizationExample)
* section[sectionProblems].title = "Active Problems"
* section[sectionProblems].code = $loinc#11450-4 "Problem list Reported"
* section[sectionProblems].text.status = #generated
* section[sectionProblems].text.div = "<div xmlns=\"http://www.w3.org/1999/xhtml\">Hot flushes</div>"
* section[sectionProblems].entry = Reference(73670837-417b-422f-9f99-46fb28d30985)
* section[sectionMedications].title = "Medication"
* section[sectionMedications].code = $loinc#10160-0 "History of Medication use Narrative"
* section[sectionMedications].text.status = #generated
* section[sectionMedications].text.div = "<div xmlns=\"http://www.w3.org/1999/xhtml\">To be populated at future time</div>"
* section[sectionMedications].entry = Reference(d2c23c25-48eb-4e55-a22a-b72787ae1d85)
* section[sectionAllergies].title = "Allergies and Intolerances"
* section[sectionAllergies].code = $loinc#48765-2 "Allergies and adverse reactions Document"
* section[sectionAllergies].text.status = #generated
* section[sectionAllergies].text.div = "<div xmlns=\"http://www.w3.org/1999/xhtml\">To be populated at future time</div>"
* section[sectionAllergies].entry = Reference(bd64ca58-bea9-4b3c-aaa0-50e0b7575b79)
* section[sectionImmunizations].title = "History of Immunizations"
* section[sectionImmunizations].code = $loinc#11369-6 "History of Immunization Narrative"
* section[sectionImmunizations].text.status = #generated
* section[sectionImmunizations].text.div = "<div xmlns=\"http://www.w3.org/1999/xhtml\">To be populated at future time</div>"
* section[sectionImmunizations].entry = Reference(LACImmunizationExample)
Instance: 73670837-417b-422f-9f99-46fb28d30985
InstanceOf: Condition
Usage: #inline
* clinicalStatus = $condition-clinical#active
* verificationStatus = $condition-ver-status#confirmed
* category.coding[0] = $condition-category#problem-list-item "Problem List Item"
* category.coding[+] = $loinc#75326-9 "Problem"
* severity = $loinc#LA6751-7 "Moderate"
* code = $icd-10#I10 "Essential (primary) hypertension"
* subject = Reference(ef333870-0a3a-4ab3-b0ff-6bc191a738c6)
* onsetDateTime = "2015"
* recordedDate = "2016-10"
Instance: dcc7db1b-29a9-4ad1-b6dd-ac06752d9c26
InstanceOf: Medication
Usage: #inline
* code.coding[0] = $sct#108774000 "Product containing anastrozole (medicinal product)"
* code.coding[+] = urn:oid:2.16.840.1.113883.2.4.4.1#99872 "ANASTROZOL 1MG TABLET"
* code.coding[+] = urn:oid:2.16.840.1.113883.2.4.4.7#2076667 "ANASTROZOL CF TABLET FILMOMHULD 1MG"
* code.coding[+] = $atc#L02BG03 "anastrozole"
Instance: d2c23c25-48eb-4e55-a22a-b72787ae1d85
InstanceOf: MedicationStatement
Usage: #inline
* status = #active
* medicationReference = Reference(dcc7db1b-29a9-4ad1-b6dd-ac06752d9c26)
* subject = Reference(ef333870-0a3a-4ab3-b0ff-6bc191a738c6)
* effectivePeriod.start = "2015-03"
* dosage.timing.repeat.count = 1
* dosage.timing.repeat.periodUnit = #d
* dosage.route = $standardterms#20053000 "Oral use"
* dosage.doseAndRate.type = $dose-rate-type#ordered "Ordered"
* dosage.doseAndRate.doseQuantity = 1 '1' "tablet"
Instance: bd64ca58-bea9-4b3c-aaa0-50e0b7575b79
InstanceOf: AllergyIntolerance
Usage: #inline
* clinicalStatus = $allergyintolerance-clinical#active
* verificationStatus = $allergyintolerance-verification#confirmed
* type = #allergy
* category = #medication
* criticality = #high
* code = $sct#373270004 "Substance with penicillin structure and antibacterial mechanism of action (substance)"
* patient = Reference(ef333870-0a3a-4ab3-b0ff-6bc191a738c6)
* onsetDateTime = "2010"

View File

@ -0,0 +1,40 @@
Extension: DDCCEventBrand
Id: DDCCEventBrand
Title: "DDCC Event Brand for Immunization"
Description: "DDCC Event Brand for Immunization"
* ^context[+].type = #element
* ^context[=].expression = "Immunization"
* ^context[+].type = #element
* ^context[=].expression = "Observation"
* value[x] only Coding
* valueCoding 1..1 MS
Extension: DDCCVaccineMarketAuthorization
Id: DDCCVaccineMarketAuthorization
Title: "DDCC Vaccine Market Authorization for Immunization"
Description: "DDCC Vaccine Market Authorization for Immunization"
* ^context.type = #element
* ^context.expression = "Immunization"
* value[x] only Coding
* valueCoding 1..1 MS
Extension: DDCCCountryOfEvent
Id: DDCCCountryOfEvent
Title: "DDCC Country Of Event for Immunization"
Description: "DDCC Country Of Event for Immunization"
* ^context.type = #element
* ^context.expression = "Immunization"
* value[x] only code
* valueCode 1..1 MS
* valueCode from http://hl7.org/fhir/ValueSet/iso3166-1-3 (preferred)
Extension: DDCCVaccineValidFrom
Id: DDCCVaccineValidFrom
Title: "DDCC Vaccine Valid From"
Description: "Date upon which provided vaccination is considered valid"
* ^context[+].type = #element
* ^context[=].expression = "Immunization"
* ^context[+].type = #element
* ^context[=].expression = "Observation"
* value[x] only date
* valueDate 1..1 MS

View File

@ -0,0 +1,275 @@
Alias: $ICD9CM = http://hl7.org/fhir/sid/icd-9-cm
Alias: $ICD10 = http://hl7.org/fhir/sid/icd-10
Alias: $ICD11 = http://id.who.int/icd11/mms
Alias: $LOINC = http://loinc.org
Alias: SCT = http://snomed.info/sct
Alias: $CVX = http://hl7.org/fhir/sid/cvx
Alias: $DIVOC = http://worldhealthorganization.github.io/ddcc/DIVOC
Alias: $EUDCC = https://ec.europa.eu/health/documents/community-register/html/
Alias: $ICAOV1 = http://worldhealthorganization.github.io/ddcc/ICAOV1
// CODE SYSTEMS
CodeSystem: DDCC_ICD11_CodeSystem
Id: DDCC-ICD11-CodeSystem
Title: "DDCC Codes for ICD11"
Description: "ICD11 codes for DDCC so the FHIR server can perform expansions."
* ^experimental = false
* ^caseSensitive = true
* ^url = $ICD11
* #RA01 "COVID-19 Disease"
* #XM68M6 "COVID-19 vaccines"
* #XM1NL1 "COVID-19 vaccine, inactivated virus"
* #XM7HT3 "CoronaVac®"
* #XM8866 "BBIBP-CorV"
* #XM9TQ1 "KCONVAC"
* #XM1G90 "Covaxin"
* #XM85P5 "Covi-Vac"
* #XM9FQ7 "Hayat-Vax"
* #XM97N6 "QazVac"
* #XM2YG8 "COVIran Barakat"
* #XM3U61 "Inactivated SARS-CoV-2 vaccine"
* #XM5DF6 "COVID-19 vaccine, live attenuated virus"
* #XM9QW8 "COVID-19 vaccine, non-replicating viral vector"
* #XM4YL8 "COVID-19 Vaccine AstraZeneca"
* #XM97T2 "Covishield®"
* #XM6QV1 "COVID-19 Vaccine Janssen"
* #XM1AG7 "Convidecia"
* #XM5ZJ4 "Gam-Covid-Vac"
* #XM5QM6 "Sputnik-Light"
* #XM0CX4 "COVID-19 vaccine, replicating viral vector"
* #XM5JC5 "COVID-19 vaccine, virus protein subunit"
* #XM3CT4 "Recombinant SARS-CoV-2 vaccine"
* #XM3PG0 "Soberana-02"
* #XM4EC8 "MVC-COV1901"
* #XM6SZ8 "EpiVacCorona"
* #XM6AT1 "COVID-19 vaccine, DNA based"
* #XM52P3 "ZyCov-D"
* #XM0GQ8 "COVID-19 vaccine, RNA based"
* #XM8NQ0 "Comirnaty®"
* #XM3DT5 "COVID-19 Vaccine Moderna"
* #XN109 "SARS-CoV-2"
* #XN0HL "SARS-CoV-2 Alpha"
* #XN4Q7 "SARS-CoV-2 Beta"
* #XN5BQ "SARS-CoV-2 Gamma"
* #XN8V6 "SARS-CoV-2 Delta"
* #XN1GK "SARS-CoV-2 Epsilon"
* #XN3ZE "SARS-CoV-2 Zeta"
* #XN2V4 "SARS-CoV-2 Eta"
* #XN4Q1 "SARS-CoV-2 Theta"
* #XN3UD "SARS-CoV-2 Iota"
* #XN9L8 "SARS-CoV-2 Kappa"
* #XN6AM "SARS-CoV-2 Lambda"
* #XN39J "SARS-CoV-2 Mu"
* #XN161 "SARS-CoV-2 Omicron"
* #MG71 "Abnormal laboratory results, not elsewhere classified"
* #RA01.0 "COVID-19, virus identified"
* #RA01.1 "COVID-19, virus not identified"
* #QA02 "Medical observation or evaluation for suspected diseases or conditions, ruled out"
* #XM1AU2 "Sinopharm WIBP-CorV"
* #XM1J92 "COVID-19 vaccine, virus like particle"
* #XM3SK8 "EpiVacCorona-N"
* #XM9N08 "Razi COV PARS"
* #XM9P21 "SpikoGen"
* #XM9T65 "Novavax COVID-19 vaccine"
* #XM0K39 "Covidful"
* #XM0RV9 "Soberana Plus"
* #XM3418 "Yellow fever, live attenuated"
* #XM28X5 "Measles vaccines"
* #XM8L15 "Measles, live attenuated"
* #XM9439 "Measles, combinations with mumps, live attenuated"
* #XM8TF3 "Measles, combinations with mumps and rubella, live attenuated"
* #XM21H2 "Measles, combinations with rubella, live attenuated"
* #XM4AJ8 "Measles, combinations with mumps, rubella and varicella, live attenuated"
* #XM0N50 "Poliomyelitis vaccines"
* #XM0VX8 "Poliomyelitis oral, monovalent live attenuated"
* #XM0KZ1 "Poliomyelitis oral, trivalent, live attenuated"
* #XM79H3 "Poliomyelitis oral, bivalent, live attenuated"
* #1D47 "Yellow fever"
* #1F03 "Measles"
* #1F03.0 "Measles without complication"
* #1F03.1 "Measles complicated by encephalitis"
* #1F03.2 "Measles complicated by meningitis"
* #1F03.Y "Measles with other complications"
* #1C81 "Acute poliomyelitis"
* #XN9S3 "Yellow fever virus"
* #XN186 "Measles virus"
* #XN3M0 "Poliovirus"
* #XN6KZ "Wild poliovirus type 1"
* #XN9CF "Wild poliovirus type 2"
* #XN97R "Wild poliovirus type 3"
// CodeSystem: DDCC_SNOMED_CodeSystem
// Id: DDCC-SNOMED-CodeSystem
// Title: "DDCC Codes for SNOMED"
// Description: "SNOMED codes for DDCC so the FHIR server can perform expansions."
// * ^experimental = false
// * ^caseSensitive = true
// * ^url = SCT
// * #318851000221104 "STAMARIL [VIRUS DE LA FIEBRE AMARILLA CEPA 17D-204 1000 UI] 1 DOSIS/ FRASCO AMPOLLA de POLVO LIOFILIZADO PARA INYECTABLE (fármaco de uso clínico comercial)"
// * #319041000221100 "VAXIPOLIO (vacuna poliovirus inactivado serotipos 1,2 y 3) SUSPENSION INYECTABLE, vial de 1 dosis (fármaco de uso clínico comercial)"
// * #318811000221100 "PROQUAD FRASCO AMPOLLA de INYECTABLE LIOFILIZADO (fármaco de uso clínico comercial)"
// VALUESETS
ValueSet: DDCC_Vaccines
Id: ddcc-vaccines
Title: "Vaccine List"
Description: """
Vaccine List from [ICD 11](https://icd.who.int/browse11)
"""
* ^status = #draft
* include $ICD11#XM68M6 "COVID-19 vaccine"
* include $ICD11#XM1NL1 "COVID-19 vaccine, inactivated virus"
* include $ICD11#XM7HT3 "CoronaVac®"
* include $ICD11#XM8866 "BBIBP-CorV"
* include $ICD11#XM9TQ1 "KCONVAC"
* include $ICD11#XM1G90 "Covaxin"
* include $ICD11#XM85P5 "Covi-Vac"
* include $ICD11#XM9FQ7 "Hayat-Vax"
* include $ICD11#XM97N6 "QazVac"
* include $ICD11#XM2YG8 "COVIran Barakat"
* include $ICD11#XM3U61 "Inactivated SARS-CoV-2 vaccine"
* include $ICD11#XM5DF6 "COVID-19 vaccine, live attenuated virus"
* include $ICD11#XM9QW8 "COVID-19 vaccine, non-replicating viral vector"
* include $ICD11#XM4YL8 "COVID-19 Vaccine AstraZeneca"
* include $ICD11#XM97T2 "Covishield®"
* include $ICD11#XM6QV1 "COVID-19 Vaccine Janssen"
* include $ICD11#XM1AG7 "Convidecia"
* include $ICD11#XM5ZJ4 "Gam-Covid-Vac"
* include $ICD11#XM5QM6 "Sputnik-Light"
* include $ICD11#XM0CX4 "COVID-19 vaccine, replicating viral vector"
* include $ICD11#XM5JC5 "COVID-19 vaccine, virus protein subunit"
* include $ICD11#XM3CT4 "Recombinant SARS-CoV-2 vaccine"
* include $ICD11#XM3PG0 "Soberana-02"
* include $ICD11#XM4EC8 "MVC-COV1901"
* include $ICD11#XM6SZ8 "EpiVacCorona"
* include $ICD11#XM1J92 "COVID-19 vaccine, virus like particle (VLP)"
* include $ICD11#XM6AT1 "COVID-19 vaccine, DNA based"
* include $ICD11#XM52P3 "ZyCov-D"
* include $ICD11#XM0GQ8 "COVID-19 vaccine, RNA based"
* include $ICD11#XM8NQ0 "Comirnaty®"
* include $ICD11#XM3DT5 "COVID-19 Vaccine Moderna"
* include $ICD11#XM3418 "Yellow fever, live attenuated"
* include $ICD11#XM28X5 "Measles vaccines"
* include $ICD11#XM8L15 "Measles, live attenuated"
* include $ICD11#XM9439 "Measles, combinations with mumps, live attenuated"
* include $ICD11#XM8TF3 "Measles, combinations with mumps and rubella, live attenuated"
* include $ICD11#XM21H2 "Measles, combinations with rubella, live attenuated"
* include $ICD11#XM4AJ8 "Measles, combinations with mumps, rubella and varicella, live attenuated"
* include $ICD11#XM0N50 "Poliomyelitis vaccines"
* include $ICD11#XM0VX8 "Poliomyelitis oral, monovalent live attenuated"
* include $ICD11#XM0KZ1 "Poliomyelitis oral, trivalent, live attenuated"
* include $ICD11#XM79H3 "Poliomyelitis oral, bivalent, live attenuated"
ValueSet: DDCC_Brands
Id: ddcc-brands
Title: "DDCC Brand List"
Description: """
DDCC Brand List from [ICD 11](https://icd.who.int/browse11)
"""
* ^status = #draft
* include $ICD11#XM7HT3 "CoronaVac®"
* include $ICD11#XM8866 "BBIBP-CorV"
* include $ICD11#XM9TQ1 "KCONVAC"
* include $ICD11#XM1G90 "Covaxin"
* include $ICD11#XM85P5 "Covi-Vac"
* include $ICD11#XM9FQ7 "Hayat-Vax"
* include $ICD11#XM97N6 "QazVac"
* include $ICD11#XM2YG8 "COVIran Barakat"
* include $ICD11#XM4YL8 "AstraZeneca"
* include $ICD11#XM97T2 "Covishield®"
* include $ICD11#XM6QV1 "Janssen"
* include $ICD11#XM1AG7 "Convidecia"
* include $ICD11#XM5ZJ4 "Gam-Covid-Vac"
* include $ICD11#XM5QM6 "Sputnik-Light"
* include $ICD11#XM3PG0 "Soberana-02"
* include $ICD11#XM4EC8 "MVC-COV1901"
* include $ICD11#XM6SZ8 "EpiVacCorona"
* include $ICD11#XM52P3 "ZyCov-D"
* include $ICD11#XM8NQ0 "Comirnaty®"
* include $ICD11#XM3DT5 "Moderna"
* include SCT#318851000221104 "STAMARIL [VIRUS DE LA FIEBRE AMARILLA CEPA 17D-204 1000 UI] 1 DOSIS/ FRASCO AMPOLLA de POLVO LIOFILIZADO PARA INYECTABLE (fármaco de uso clínico comercial)"
* include SCT#319041000221100 "VAXIPOLIO (vacuna poliovirus inactivado serotipos 1,2 y 3) SUSPENSION INYECTABLE, vial de 1 dosis (fármaco de uso clínico comercial)"
* include SCT#318811000221100 "PROQUAD FRASCO AMPOLLA de INYECTABLE LIOFILIZADO (fármaco de uso clínico comercial)"
ValueSet: DDCC_Disease_Targeted
Id: ddcc-disease-targeted
Title: "Disease or Agent Targeted"
Description: """
Disease or Agent Targeted List from [ICD 11](https://icd.who.int/browse11)
"""
* ^status = #draft
* include $ICD11#RA01 "COVID-19"
* include $ICD11#1D47 "Yellow fever"
* include $ICD11#1F03 "Measles"
* include $ICD11#1F03.0 "Measles without complication"
* include $ICD11#1F03.1 "Measles complicated by encephalitis"
* include $ICD11#1F03.2 "Measles complicated by meningitis"
* include $ICD11#1F03.Y "Measles with other complications"
* include $ICD11#1C81 "Acute poliomyelitis"
* include $ICD11#XN9S3 "Yellow fever virus"
* include $ICD11#XN186 "Measles virus"
* include $ICD11#XN3M0 "Poliovirus"
* include $ICD11#XN6KZ "Wild poliovirus type 1"
* include $ICD11#XN9CF "Wild poliovirus type 2"
* include $ICD11#XN97R "Wild poliovirus type 3"
// CodeSystem: DIVOC_CodeSystem
// Id: DIVOC-CodeSystem
// Title: "Vaccine Codes for DIVOC"
// Description: "Vaccine codes for DIVOC so the FHIR server can perform expansions."
// * ^experimental = false
// * ^caseSensitive = true
// * ^url = $DIVOC
// * #DIVOC001 "Zycov-D"
// * #DIVOC002 "Covaxin"
// * #DIVOC003 "Covishield"
// * #DIVOC004 "Sputnik V"
// * #DIVOC005 "Pfizer-BioNTech or Comirnaty"
// * #DIVOC006 "Janssen"
// * #DIVOC007 "Moderna or Modema or Spikevax"
// * #DIVOC008 "AstraZeneca or Vaxzevria"
// * #DIVOC009 "Sinovac or Coronavac"
// * #DIVOC010 "BBIBP- CorV or Sinopharm"
// * #DIVOC011 "Convidecia"
// * #DIVOC012 "Corbevax"
// * #DIVOC013 "Novavax/Covovax NVX - CoV2373"

View File

@ -0,0 +1,85 @@
Profile: LAC_Immunization
Parent: http://hl7.org/fhir/uv/ips/StructureDefinition/Immunization-uv-ips
Id: lac-immunization
Description: "LACPass Patient Summary Immunization resource. This profile derives from the [DDCC Immunization](https://worldhealthorganization.github.io/ddcc/) with different contraints to include other pathologies."
* ^url = "https://lacpass.racsel.org/fhir/StructureDefinition/lac-immunization"
* extension contains DDCCEventBrand named vaccineBrand 1..1 MS
and DDCCVaccineMarketAuthorization named vaccineMarketAuthorization 0..1 MS
and DDCCCountryOfEvent named country 1..1 MS
and DDCCVaccineValidFrom named validFrom 0..1 MS
// * extension[DDCCVaccineBrand] ^label = "Vaccine brand"
// * extension[DDCCVaccineMarketAuthorization] ^label = "Vaccine market authorization holder"
// * extension[DDCCCountryOfVaccination] ^label = "Country of vaccination"
// * extension[DDCCVaccineValidFrom] ^label = "Vaccination valid from"
* extension[vaccineBrand] ^label = "Vaccine brand"
* extension[vaccineMarketAuthorization] ^label = "Vaccine market authorization holder"
* extension[country] ^label = "Country of vaccination"
* extension[validFrom] ^label = "Vaccination valid from"
* vaccineCode 1..1 MS
* vaccineCode ^label = "Vaccine or prophylaxis"
/*
* vaccineCode.coding ^slicing.discriminator[+].type = #exists
* vaccineCode.coding ^slicing.discriminator[=].path = "system"
* vaccineCode.coding ^slicing.discriminator[+].type = #exists
* vaccineCode.coding ^slicing.discriminator[=].path = "code"
* vaccineCode.coding ^slicing.rules = #open
* vaccineCode.coding contains ddccVaccine 1..1 MS
* vaccineCode.coding[ddccVaccine].system 1..1 MS
* vaccineCode.coding[ddccVaccine].code 1..1 MS
* vaccineCode.coding[ddccVaccine] from WHO_DDCC_Vaccines_COVID_19 (example)
*/
* vaccineCode.coding 1..1 MS
* vaccineCode.coding.system 1..1 MS
* vaccineCode.coding.code 1..1 MS
* vaccineCode from DDCC_Vaccines (preferred)
// do we need this ? * vaccineCode.coding[ddccVaccine].system = "urn:EXAMPLE-who-:smart:vaccine-certificate:RC1:coding"
// do we need this ? * vaccineCode.coding[ddccVaccine].code from WHO_DDCC_Vaccines_COVID_19 (example)
* location 1..1 MS
* location ^label = "Administering centre"
* location.display 1..1 MS
* manufacturer 0..1 MS
* lotNumber MS
* lotNumber ^label = "Vaccine batch number"
* patient only Reference(LAC_Patient)
* occurrence[x] 1..1 MS
* occurrence[x] only dateTime
* occurrence[x] ^label = "Date of vaccination"
* performer 0..
* performer.actor only Reference(Practitioner or LAC_Organization)
* performer.actor ^label = "Health worker identifier"
* protocolApplied 1.. MS
* protocolApplied ^slicing.discriminator.type = #type
* protocolApplied ^slicing.discriminator.path = "authority"
* protocolApplied ^slicing.rules = #open
* protocolApplied contains protocolAppliedAuthority 1.. MS
* protocolApplied[protocolAppliedAuthority].authority only Reference(LAC_Organization)
* protocolApplied[protocolAppliedAuthority].targetDisease from DDCC_Disease_Targeted (preferred)
* protocolApplied[protocolAppliedAuthority].targetDisease ^label = "Disease or agent targeted"
* protocolApplied[protocolAppliedAuthority].doseNumber[x] 1..1 MS
* protocolApplied[protocolAppliedAuthority].doseNumber[x] only positiveInt
* protocolApplied[protocolAppliedAuthority].doseNumber[x] ^label = "Dose number"
* protocolApplied[protocolAppliedAuthority].seriesDoses[x] 0..1
* protocolApplied[protocolAppliedAuthority].seriesDoses[x] only positiveInt
* protocolApplied[protocolAppliedAuthority].seriesDoses[x] ^label = "Total doses"
Instance: LACImmunizationExample
InstanceOf: LAC_Immunization
Usage: #example
* meta.profile = "https://lacpass.racsel.org/fhir/StructureDefinition/lac-immunization"
* extension[vaccineBrand].url = "http://lacpass.racsel.org/StructureDefinition/DDCCEventBrand"
* extension[vaccineBrand].valueCoding = $DDCC-Example-Test-CodeSystem#XM4YL8
* extension[vaccineMarketAuthorization].url = "http://lacpass.racsel.org/StructureDefinition/DDCCVaccineMarketAuthorization"
* extension[vaccineMarketAuthorization].valueCoding = $DDCC-Example-Test-CodeSystem#TEST
* extension[country].url = "http://lacpass.racsel.org/StructureDefinition/DDCCCountryOfEvent"
* extension[country].valueCode = #CL
* status = #completed
* vaccineCode = $mms#XM9QW8 "COVID-19 vaccine, non-replicating viral vector"
* lotNumber = "A1234"
* patient = Reference(LACPatientExample)
* occurrenceDateTime = "2020-11-15"
* protocolApplied.doseNumberPositiveInt = 1
* location.display = "Administration center"

View File

@ -0,0 +1,15 @@
Profile: LAC_Minimal_Provide_Document
Parent: https://profiles.ihe.net/ITI/MHD/StructureDefinition/IHE.MHD.Minimal.ProvideBundle
Id: lac-provide-document
Description: "LACPass ITI-65 Minimal Provide Document Transaction. This profile derives from the [MHD ITI-65 Minimal Provde Document](https://profiles.ihe.net/ITI/MHD/StructureDefinition-IHE.MHD.Minimal.ProvideBundle.html) profile with customizations to use the profiles defined in this implementation guide."
* ^url = "https://lacpass.racsel.org/fhir/StructureDefinition/lac-provide-document"
// Make use of LAC Bundle and LAC Patient
// * entry[FhirDocuments] 1..1
* entry[FhirDocuments].resource 1..1
* entry[FhirDocuments].resource only LAC_Bundle
// * entry[Patient] 1..1
* entry[Patient].resource 1..1
* entry[Patient].resource only LAC_Patient

View File

@ -0,0 +1,20 @@
Profile: LAC_Organization
Parent: http://hl7.org/fhir/uv/ips/StructureDefinition/Organization-uv-ips
Id: lac-organization
Description: "LACPass Patient Summary Organization resource. This profile derives from the [International Patient summary](https://build.fhir.org/ig/HL7/fhir-ips/) with more contraints for the identification of the country of the organization."
* ^url = "https://lacpass.racsel.org/fhir/StructureDefinition/lac-organization"
// Make organization address country required
* address 1..1
* address.country 1..1
* address.country from http://terminology.hl7.org/ValueSet/v3-Country2
* address.country ^short = "Must be ISO-3306 2-letter"
Instance: LACOrganizationExample
InstanceOf: LAC_Organization
Usage: #example
* name = "Ministerio de Salud"
* address.text = "Enrique Mac Iver 541, Santiago, Región Metropolitana"
* address.country = "CL"

View File

@ -1,14 +1,84 @@
// This is a simple example of a FSH file.
// This file can be renamed, and additional FSH files can be added.
// SUSHI will look for definitions in any file using the .fsh ending.
Profile: MyPatient
Parent: Patient
Description: "An example profile of the Patient resource."
* name 1..* MS
Alias: $v2-0203 = http://terminology.hl7.org/CodeSystem/v2-0203
Instance: PatientExample
InstanceOf: MyPatient
Description: "An example of a patient with a license to krill."
* name
* given[0] = "James"
* family = "Pond"
Profile: LAC_Patient
Parent: http://hl7.org/fhir/uv/ips/StructureDefinition/Patient-uv-ips
Id: lac-patient
Description: "LACPass Patient Summary Patient resource. This profile derives from the [International Patient summary](https://build.fhir.org/ig/HL7/fhir-ips/) with more contraints for the identification of the patients."
* ^url = "https://lacpass.racsel.org/fhir/StructureDefinition/lac-patient"
// identifier slice for nhi
* identifier ^slicing.discriminator.type = #value
* identifier ^slicing.discriminator.path = "system"
* identifier ^slicing.rules = #open
* identifier ^slicing.description = "Patient identifier"
// declare slices
* identifier contains
international 1..* MS and
national 1..* MS
// details of international slice
* identifier[international] ^definition = "The international identifier for the patient. The passport number is used."
* identifier[international].system 1..1
* identifier[international].system ^short = "URN OID for the country (ISO-3306 numeric)"
* identifier[international].use 1..1
* identifier[international].use = #official (exactly)
* identifier[international].use ^short = "fixed to official"
* identifier[international].type 1..1
* identifier[international].type.coding.system 1..1
* identifier[international].type.coding.system = "http://terminology.hl7.org/CodeSystem/v2-0203" (exactly)
* identifier[international].type.coding.code = #PPN (exactly)
* identifier[international].type.coding.code ^short = "fixed to PPN (Passport number)"
* identifier[international].type ^short = "Passport number"
// details of national slice
* identifier[national] ^definition = "The national identifier for the patient. Any type different from PPN can be used."
* identifier[national].system 1..1
* identifier[national].system ^short = "URN OID for the country (ISO-3306 numeric)"
* identifier[national].type 1..1
* identifier[national].type.coding.code 1..1
* identifier[national].type.coding.system 1..1
* identifier[national].type.coding.system = "http://terminology.hl7.org/CodeSystem/v2-0203" (exactly)
// * identifier[national].type.coding.code = "PPN" (exactly)
* identifier[national].type ^short = "Any type except PPN (Passport number)"
// declare rule to say can't have more than one 'official' identifier
* obeys lac-pat-1
* obeys lac-pat-2
// invariant for lac-pat-1 rule
Invariant: lac-pat-1
Expression: "Patient.identifier.where(use='official').count() == 1"
Severity: #error
Description: "A patient can only have a single official identifier"
// invariant for lac-pat-2 rule
Invariant: lac-pat-2
Expression: "Patient.identifier.where(use='official')[0].system.startsWith('urn:oid.2.16.')"
Severity: #error
Description: "The identifier system must be a URN OID"
// Example
Instance: LACPatientExample
InstanceOf: LAC_Patient
Usage: #example
* identifier[international].use = #official
* identifier[international].type = $v2-0203#PPN
* identifier[international].system = "urn:oid.2.16.152"
* identifier[international].value = "CL/F12-1234123-2"
* identifier[national].system = "urn:oid.2.16.152"
* identifier[national].type = $v2-0203#TAX
* identifier[national].value = "CL/18922652-7"
* active = true
* name.use = #official
* name.text = "Sergio Penafiel"
* name.family = "Penafiel"
* name.given = "Sergio"
* gender = #male
* birthDate = "1994-10-13"

View File

@ -0,0 +1,11 @@
# Additional Resources
These are useful links to other resources related with the project. Please refer to them in order to
|Title|Description|Link|
|--|--|---|
|Official site|Official Webpage of the project| [https://racsel.org/bprlacpass/](https://racsel.org/bprlacpass/) |
|National Node Repository|Repository that contains all the services needed to run this project| [Github repository](https://github.com/RACSEL/IPS-national-backend) |
|Postman Collection|Postman collection with examples of all requests| [Postman Collection](https://www.postman.com/flight-geoscientist-85716189/workspace/public/request/17243398-d6ef9b7e-7799-4024-a0cc-bfacdc902619) |
|Gazelle Validator|Gazelle EVS Client validator for IPS and other FHIR profiles| [Gazelle Validator](https://gazelle.racsel.org/EVSClient/fhir/validator.seam?standard=FHIR&extension=IHE) |
|Session recordings|Recording for technical committees and workshops| [Youtube channel](https://www.youtube.com/channel/UC8MszLZGgNinfYGNVaSHzDg) |

View File

@ -1,3 +1,27 @@
# LACPass IPS
Feel free to modify this index page with your own awesome content!
![LOGO](https://racsel.org/gallery_gen/e02faae0d48126fb295b3badf0f1002f_898x348_fit.png)
------
This site contains the resources for the FHIR Implementation guide for the project LACPASS - Bien Publico Regional "Transformación Digital en Salud para Mitigar los Efectos de COVID-19 en América Latina y el Caribe".
### Content
This implementation guide is derived from the official [IPS Implementation Guide](https://build.fhir.org/ig/HL7/fhir-ips/), [DDCC Implementation Guide](https://worldhealthorganization.github.io/ddcc/) and [MHD Implementation Guide](https://profiles.ihe.net/ITI/MHD/)
Most of the resources specified in the official implementation guides are supported in the LACPass version of the IPS, DDCC and MHD. Just the resources for Patient, Immunization and Organization have changes and additional constraints for the IPS.
### Dependencies
{% include dependency-table.xhtml %}
### Authors and Contributors
| Role | Name | Organization | Contact |
| --- | --- | --- | --- |
| **Primary Editor** | Sergio Peñafiel | CREATE, Chile | sergio@create.cl |
| Terminology contributor | Marcelo Cabello | CENS, Chile | mcabello@cens.cl |
| Reviewer | Fernando Portilla | BID | fportila@gmail.com |
-------

View File

@ -0,0 +1,69 @@
# Transactions
This page specifies the transactions that are supported for the use cases of this project. These are divided into two groups, MHD transactions for IPS exchange, and DDCC transactions.
### MHD Transactions
In order to exchange information about IPS the system must support the MHD transactions ITI-65, ITI-67 and ITI-68 described below.
The official repository includes the IPS mediator service which is a FHIR interceptor or API Gateway that transforms the incoming request to implement MHD Transactions. Participant countries can use this mediator or implement their own tranasctions.
#### ITI-65 - Provide Document
Reference: [https://profiles.ihe.net/ITI/MHD/ITI-65.html](https://profiles.ihe.net/ITI/MHD/ITI-65.html)
This endpoint recieves an IPS Bundle and transform it to a FHIR transaction adding the Patient Folder (List) and the Document Reference as explained in the implementation guide.
Example command using the mediator:
curl -i -X POST http://localhost:3000/fhir/Bundle -H "Content-Type: application/json" -d @examples/ips-sample-1.json
#### ITI-66 - Find Document Lists (Optional)
Reference: [https://profiles.ihe.net/ITI/MHD/ITI-66.html](https://profiles.ihe.net/ITI/MHD/ITI-66.html)
This endpoint recieves a patient identifier and gives the list of document and their references.
Example command:
curl -i -X GET http://localhost:8080/fhir/List/?patient.identifier=CY/Passport-HG-1112&_format=json&status=current
Note that the parameter `patient.identifier` is defined with the value of the identifier of the patient to be queried.
#### ITI-67 - Find Document References
Reference: [https://profiles.ihe.net/ITI/MHD/ITI-67.html](https://profiles.ihe.net/ITI/MHD/ITI-67.html)
This endpoint recieves a patient identifier and gives the list of document references for this patient.
Example command:
curl -i -X GET http://localhost:5000/fhir/DocumentReference/?patient.identifier=CY/Passport-HG-1112&_format=json&status=current
Note that the parameter `patient.identifier` is defined with the value of the identifier of the patient to be queried.
#### ITI-68 - Retrieve Document
Reference: [https://profiles.ihe.net/ITI/MHD/ITI-68.html](https://profiles.ihe.net/ITI/MHD/ITI-68.html)
This endpoint returns the IPS for a patient. The URL is retrtieved from the result of the ITI-67 request. Specifically the url will be in the `content > attachment > url` attribute of each entry.
Example command:
curl -i -X GET http://lacpass.create.cl:8080/fhir/Bundle/IPS-examples-Bundle-01?_format=json
### DDCC Transformation
The IPS mediator includes a FHIR operation called `$ddcc` which transforms IPS Bundles to DDCC documents. It is mandatory for this operation to work that the stored IPS have at least one `Immunization` resource.
This is an example to use the transformation operation using the mediator:
curl -i --request GET 'http://localhost:3000/fhir/Bundle/fb06a834-6b55-4ac3-a856-82489eb4d69d/$ddcc'
Where `fb06a834-6b55-4ac3-a856-82489eb4d69d` is the id of the IPS Bundle. This endpoint returns the DDCC Bundle associated to the requested IPS.
This transformation retrieves a previously stored IPS and checks whether the `Immunization` resource is present. The process extracts the information from the IPS to build the QuestionnaryResponse with the DDCC structure. This QuestionnarieResponse is sent to the DDCC module to generate the document.

View File

@ -6,7 +6,7 @@
id: lacpass.racsel.org
canonical: http://lacpass.racsel.org
name: LACPassIPS
# title: Example Title
title: LACPass International Patient Summary (IPS) Guide
# description: Example Implementation Guide for getting started with SUSHI
status: active # draft | active | retired | unknown
version: 0.1.0
@ -33,7 +33,8 @@ publisher:
dependencies:
hl7.fhir.uv.ips: current
fhir.org.nz.ig.base: current
ihe.iti.mhd: current
# fhir.who.ddcc: current
#
#
@ -82,6 +83,8 @@ dependencies:
menu:
Home: index.html
Artifacts: artifacts.html
Transactions: transactions.html
External: additional.html
# ╭───────────────────────────Less Common Implementation Guide Properties──────────────────────────╮
# │ Uncomment the properties below to configure additional properties on the ImplementationGuide │