DRAFT PH Road Safety Implementation Guide
0.3.0 - ci-build Philippines flag

DRAFT PH Road Safety Implementation Guide, published by UP Manila - National Institutes of Health - National Telehealth Center. This guide is not an authorized publication; it is the continuous build for version 0.3.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/UPM-NTHC/PH-RoadSafetyIG/ and changes regularly. See the Directory of published versions

Data Modelling

  • This page gives a high level overview of the mapped FHIR resources from workshops (dot-vote priorities, ONEISS, ONEISS vs NHDR mapping), map MDS fields to FHIR resources (Observation, Encounter, Condition, DocumentReference, Procedure, Patient, Location, etc.) and note areas marked MUST SUPPORT.

Key decisions (high-level)

  • Use Observation for most scene/transport vitals, triage, collision/vehicle details and many external-cause elements.
  • Use Encounter for the transport/visit context and participant roles (team lead, treatment officer, transport officer, receiving staff).
  • Use DocumentReference for post-crash reports, attachments (cause of crash, party at fault, reconstruction materials).
  • Use Condition for diagnosis/icd-10/nature of injury.
  • Use Procedure for psychosocial support, coordination tasks, and other performed procedures.
  • Use Patient/Location/Organization references where appropriate for identifiers and facility information.

Generated Plantuml (v0.2)

Orphan resourcesRSObsTimelineDateReceivedRSObsTimelineTimeEnrouteRSObsTimelineTimeOnSceneRSObsTimelineTimeDepartedRSObsTimelineTimeHospitalArrivalRSObsTimelineTimeStationArrivalRSAllergyIntolerancecode.text : — [0..1]patient : — [1..1]patient : Reference(RSPatient)encounter : Reference(RSEncounter)patient : Reference(rs-example-patient)AllergyIntoleranceRSPatientidentifier : — [0..*]name : — [1..*]name.family : — [0..1]name.given : — [1..*]birthDate : — [0..1]telecom : — [0..*]address : — [0..*]address.line : — [0..*]address.extension : — [0..*]identifier : — [0..1]RSEncounterstatus : — [1..1]class : — [1..1]subject : — [1..1]period.start : — [1..1]serviceProvider : — [0..1]participant : — [0..*]hospitalization.dischargeDisposition : — [0..1]hospitalization.destination : — [0..1]location : — [0..1]location[accidentSite].location : — [1..1]location[facility].location : — [1..1]location[facility].location.type : — [0..1]identifier : — [1..*]identifier : — [0..1]hospitalization.origin : — [0..1]participant : — [0..1]participant[receivedBy].individual : — [0..1]participant[teamLeader].individual : — [0..1]participant[treatmentOfficer].individual : — [0..1]participant[transportOfficer].individual : — [0..1]participant[assistant].individual : — [0..1]extension : — [0..*]subject : Reference(RSPatient)serviceProvider : Reference(RSOrganization)location[accidentSite].location : Reference(RSIncidentLocation)location[facility].location : Reference(RSServiceLocation)hospitalization.origin : Reference(RSOrganization)participant[receivedBy].individual : Reference(PHCorePractitioner)participant[teamLeader].individual : Reference(PHCorePractitioner)participant[treatmentOfficer].individual : Reference(PHCorePractitioner)participant[transportOfficer].individual : Reference(PHCorePractitioner)participant[assistant].individual : Reference(PHCorePractitioner)rs-example-patientRSBundleMinimumtype : — [1..1]entry : — [1..*]entry.resource : — [1..1]entry[patient].resource : RSPatiententry[encounter].resource : RSEncounterentry[allergyIntolerance].resource : RSAllergyIntoleranceentry[medicationStatement].resource : RSMedicationStatemententry[task].resource : RSTaskentry[location].resource : RSIncidentLocationentry[documentReference].resource : RSDocumentReferenceBundleRSClaimpatient : — [1..1]total : — [0..1]patient : Reference(RSPatient)patient : Reference(rs-example-patient)provider : Reference(rs-organization-single-ex)insurance[0].coverage : Reference(rs-example-coverage)beneficiary : Reference(rs-example-patient)subscriber : Reference(rs-example-patient)payor[0] : Reference(rs-organization-single-ex)Claimrs-organization-single-exrs-example-coverageRSConditionsubject : — [1..1]encounter : — [0..1]category : — [0..1]severity : — [0..1]code : — [0..1]code.text : — [0..1]onset[x] : — [0..1]note : — [0..*]subject : Reference(RSPatient)encounter : Reference(RSEncounter)ConditionRSConditionInitialImpressioncode : — [0..1]category.coding : — [1..1]RSConditionFinalDiagnosiscode : — [0..1]category.coding : — [1..1]RSConditionNatureOfInjurycategory : — [0..1]category.coding.system : — [0..1]category.coding.display : — [0..1]code : — [0..1]RSConditionExternalCausecategory : — [0..1]category.coding.system : — [0..1]category.coding.display : — [0..1]code : — [0..1]RSConditionProblemcode : — [0..1]category.coding : — [1..1]RSDocumentReferencestatus : — [1..1]type : — [0..1]subject : — [0..1]context.encounter : — [0..1]content : — [1..*]content.attachment.url : — [1..1]content.format : — [0..1]subject : Reference(RSPatient)context.encounter : Reference(RSEncounter)subject : Reference(rs-example-patient)context.encounter : Reference(rs-example-encounter)DocumentReferencers-example-encounterPHCoreEncounterRSOrganizationactive : — [0..1]type : — [0..*]name : — [1..1]identifier : — [0..*]telecom : — [0..*]address : — [0..*]RSIncidentLocationname : — [0..1]address : — [0..1]address.line : — [0..*]address.extension : — [0..*]position : — [0..1]position.longitude : — [1..1]position.latitude : — [1..1]RSServiceLocationname : — [0..1]address : — [0..1]type : — [0..1]PHCorePractitionerRSEncounterVehicleUsedvalueCodeableConcept : — [1..1]valueCodeableConcept.text : — [1..1]subject : Reference(rs-example-patient)serviceProvider : Reference(rs-organization-single-ex)location[accidentSite].location : Reference(rs-example-incident-location)location[facility].location : Reference(rs-example-service-location-er)participant[receivedBy].individual : Reference(rs-practitioner-receivedby)participant[teamLeader].individual : Reference(rs-practitioner-teamlead)participant[treatmentOfficer].individual : Reference(rs-practitioner-treatment)hospitalization.origin : Reference(rs-organization-single-ex)hospitalization.destination : Reference(rs-example-service-location-er)rs-example-incident-locationrs-example-service-location-errs-practitioner-receivedbyrs-practitioner-teamleadrs-practitioner-treatmentPHCoreLocationRSMedicationStatementsubject : — [1..1]effective[x] : — [0..1]medicationCodeableConcept : — [1..1]medicationCodeableConcept.text : — [1..1]subject : Reference(RSPatient)subject : Reference(rs-example-patient)MedicationStatementRSObservationstatus : — [1..1]subject : — [1..1]encounter : — [0..1]effective[x] : — [0..1]performer : — [0..*]value[x] : — [0..1]note : — [0..*]subject : Reference(RSPatient)encounter : Reference(RSEncounter)PHCoreObservationPHCoreOrganizationRSHealthcareServiceactive : — [0..1]type : — [0..*]name : — [0..1]identifier : — [0..*]telecom : — [0..*]providedBy : — [1..1]location : — [0..*]coverageArea : — [0..*]providedBy : Reference(RSOrganization)location : Reference(RSIncidentLocation)providedBy : Reference(rs-organization-single-ex)location[0] : Reference(rs-example-service-location-basic)HealthcareServicers-example-service-location-basicPHCorePatientRSProcedurestatus : — [1..1]code : — [0..1]subject : — [1..1]encounter : — [0..1]performer : — [0..*]note : — [0..*]subject : Reference(RSPatient)encounter : Reference(RSEncounter)performer.actor : Reference(PHCorePractitioner)PHCoreProcedureRSProcedureTransportCoordinationcode : — [1..1]code.coding : — [1..1]subject : Reference(rs-example-patient)encounter : Reference(rs-example-encounter)performer[0].actor : Reference(rs-practitioner-teamlead)RSServiceRequeststatus : — [1..1]encounter : — [0..1]subject : — [1..1]occurrenceDateTime : — [0..1]supportingInfo : — [2..*]supportingInfo : — [1..1]encounter : Reference(RSEncounter)subject : Reference(RSPatient)supportingInfo[reportingOrganization] : Reference(RSOrganization)supportingInfo[contactPractitioner] : Reference(PHCorePractitioner)subject : Reference(rs-example-patient)encounter : Reference(rs-example-encounter)supportingInfo[reportingOrganization] : Reference(rs-organization-single-ex)supportingInfo[contactPractitioner] : Reference(rs-practitioner-receivedby)ServiceRequestRSTaskstatus : — [1..1]executionPeriod : — [0..1]note : — [0..*]for : — [0..1]focus : — [0..1]input : — [0..*]output : — [0..*]for : Reference(RSPatient)for : Reference(rs-example-patient)focus : Reference(rs-example-service-request)owner : Reference(rs-practitioner-receivedby)Taskrs-example-service-requestObs (RS profiles)"RS Observation - Injury Intent" : Profile"RS Observation - External Cause: Bites/Stings" : Profile"RS Observation - External Cause: Burns" : Profile"RS Observation - External Cause: Chemical/Substance" : Profile"RS Observation - External Cause: Contact with Sharp Object" : Profile"RS Observation - External Cause: Drowning" : Profile"RS Observation - External Cause: Exposure to Forces of Nature" : Profile"RS Observation - External Cause: Fall" : Profile"RS Observation - External Cause: Firecracker" : Profile"RS Observation - External Cause: Gunshot" : Profile"RS Observation - External Cause: Hanging/Strangulation" : Profile"RS Observation - External Cause: Mauling/Assault" : Profile"RS Observation - Transport/Vehicular Accident" : Profile"RS Observation - External Cause: Other" : Profile"RS Observation - Transferred From Facility" : Profile"RS Observation - Referred By Facility" : Profile"RS Observation - Outcome at Release" : Profile"RS Observation - Run Report Comments" : Profile"RS Observation - Timeline Date/Time" : Profile"RS Observation - Respiratory Rate" : Profile"RS Observation - Pulse Rate" : Profile"RS Observation - Blood Pressure" : Profile"RS Observation - Body Temperature" : Profile"RS Observation - Pupils" : Profile"RS Observation - Cyanosis" : Profile"RS Observation - Glasgow Coma Scale" : Profile"RS Observation - Clinical Remarks" : Profile"RS Observation - Condition of Patient" : Profile"RS Observation - Triage Priority" : Profile"RS Observation - Status on Arrival" : Profile"RS Observation - Mode of Transport to Facility" : Profile"RS Observation - Reported Complaint" : Profile"RS Observation - Call Source" : Profile"RS Observation - How Many Vehicles Involved" : Profile"RS Observation - Date/Time of Injury" : Profile"RS Observation - Collision vs Non-Collision" : Profile"RS Observation - Patient's Vehicle" : Profile"RS Observation - Other Vehicle/Object Involved" : Profile"RS Observation - Position of Patient" : Profile"RS Observation - Place of Occurrence" : Profile"RS Observation - Activity at Time of Incident" : Profile"RS Observation - Blood Alcohol Concentration" : Profile"RS Observation - Multiple Injuries?" : Profile"RS Observation - Abrasion" : Profile"RS Observation - Avulsion" : Profile"RS Observation - External Cause: Burns" : Profile"RS Observation - Concussion" : Profile"RS Observation - Contusion" : Profile"RS Observation - Fracture" : Profile"RS Observation - Open Wound" : Profile"RS Observation - Traumatic Amputation" : Profile"RS Observation - Other Specified Injury" : Profile"RS Observation - Collision Type" : Profile"RS Observation - Presence of Traffic Investigator" : Profile"RS Observation - CCTV Available" : Profile"RS Observation - Other Risk Factors" : Profile"RS Observation - Safety Accessories" : Profile"RS Observation - External Cause: Sexual Assault/Abuse/Rape (Alleged)" : Profile"RS Observation - Level of Consciousness (AVPU)" : Profile"RS Observation - Priority Level (Urgency)" : Profilepatientencounterpatientpatientpatientbeneficiarysubscriberproviderpayor[0]insurance[0].coveragesubjectencountersubjectcontext.encountersubjectcontext.encountersubjectserviceProviderhospitalization.originlocation[accidentSite].locationlocation[facility].locationparticipant[receivedBy].individualparticipant[teamLeader].individualparticipant[treatmentOfficer].individualparticipant[transportOfficer].individualparticipant[assistant].individualsubjectserviceProviderhospitalization.originlocation[accidentSite].locationlocation[facility].locationhospitalization.destinationparticipant[receivedBy].individualparticipant[teamLeader].individualparticipant[treatmentOfficer].individualsubjectsubjectsubjectencounterprovidedBylocationprovidedBylocation[0]subjectencounterperformer.actorsubjectencounterperformer[0].actorencountersubjectsupportingInfo[reportingOrganization]supportingInfo[contactPractitioner]subjectencountersupportingInfo[reportingOrganization]supportingInfo[contactPractitioner]forforfocusownerprofiles

Manually created Plantuml

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> RSPatientNameIDRSEncounterIDpatientlocation[accidentSite]location[facility]hospitalization.originRSObservationcodepatientencountervalue[x]RSConditioncodepatientencounterRSAllegyIntolerancecodepatientencounterRSProcedurecodesubjectencounterpractitionerPHCorePractitionerIDRSServiceLocationIDpatientRSOrganizationIDpatientRSIncidentLocationIDposition.longitudeposition.latitudeRSHealthcareServiceIDlocationprovidedByRSTaskforfocusownerRSMedicationStatementsubjectServiceRequestIDRSDocumentReferencesubjectcontext.encounterRSMedicationStatementpatientprovider

Mermaid diagram (simplified v0.1)

flowchart LR
  Patient[Patient]
  Encounter[Encounter]
  Observation[Observation]
  Condition[Condition]
  Procedure[Procedure]
  DocumentReference[DocumentReference]
  Location[Location]
  Organization[Organization]

  Patient -->|subject of| Encounter
  Encounter -->|has observations| Observation
  Encounter -->|has diagnoses| Condition
  Encounter -->|has procedures| Procedure
  Encounter -->|serviceProvider| Organization
  Encounter -->|occursAt| Location
  Observation -->|derivedFrom| DocumentReference
  DocumentReference -->|attachment for| Encounter

  style Patient fill:#f9f,stroke:#333,stroke-width:1px
  style Observation fill:#ff9,stroke:#333,stroke-width:1px