FHIR IG Statistics: StructureDefinition/VisitDetail
Package | hl7.fhir.uv.omop |
Type | StructureDefinition |
Id | VisitDetail |
FHIR Version | R5 |
Source | http://hl7.org/fhir/uv/omop/https://build.fhir.org/ig/HL7/fhir-omop-ig/StructureDefinition-VisitDetail.html |
URL | http://hl7.org/fhir/uv/omop/StructureDefinition/VisitDetail |
Version | 1.0.0-ballot |
Status | active |
Date | 2025-07-22T19:48:02+00:00 |
Name | VisitDetail |
Title | Visit Detail OMOP Table |
Realm | uv |
Authority | hl7 |
Description | The VISIT_DETAIL table is an optional table used to represents details of each record in the parent VISIT_OCCURRENCE table. A good example of this would be the movement between units in a hospital during an inpatient stay or claim lines associated with a one insurance claim. For every record in the VISIT_OCCURRENCE table there may be 0 or more records in the VISIT_DETAIL table with a 1:n relationship where n may be 0. The VISIT_DETAIL table is structurally very similar to VISIT_OCCURRENCE table and belongs to the visit domain. |
Type | http://hl7.org/fhir/uv/omop/StructureDefinition/VisitDetail |
Kind | logical |
Resources that use this resource
Resources that this resource uses
Narrative
Note: links and images are rebased to the (stated) source
Source
{
"resourceType": "StructureDefinition",
"id": "VisitDetail",
"text": {
"status": "extensions",
"div": "<!-- snip (see above) -->"
},
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-type-characteristics",
"valueCode": "can-be-target"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
"valueCode": "brr"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
"valueInteger": 1,
"_valueInteger": {
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom",
"valueCanonical": "http://hl7.org/fhir/uv/omop/ImplementationGuide/hl7.fhir.uv.omop"
}
]
}
},
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
"valueCode": "informative",
"_valueCode": {
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom",
"valueCanonical": "http://hl7.org/fhir/uv/omop/ImplementationGuide/hl7.fhir.uv.omop"
}
]
}
}
],
"url": "http://hl7.org/fhir/uv/omop/StructureDefinition/VisitDetail",
"version": "1.0.0-ballot",
"name": "VisitDetail",
"title": "Visit Detail OMOP Table",
"status": "active",
"date": "2025-07-22T19:48:02+00:00",
"publisher": "HL7 International / Biomedical Research and Regulation",
"contact": [
{
"name": "HL7 International / Biomedical Research and Regulation",
"telecom": [
{
"system": "url",
"value": "http://www.hl7.org/Special/committees/rcrim"
}
]
}
],
"description": "The VISIT_DETAIL table is an optional table used to represents details of each record in the parent VISIT_OCCURRENCE table. A good example of this would be the movement between units in a hospital during an inpatient stay or claim lines associated with a one insurance claim. For every record in the VISIT_OCCURRENCE table there may be 0 or more records in the VISIT_DETAIL table with a 1:n relationship where n may be 0. The VISIT_DETAIL table is structurally very similar to VISIT_OCCURRENCE table and belongs to the visit domain.",
"jurisdiction": [
{
"coding": [
{
"system": "http://unstats.un.org/unsd/methods/m49/m49.htm",
"code": "001",
"display": "World"
}
]
}
],
"fhirVersion": "5.0.0",
"mapping": [
{
"identity": "rim",
"uri": "http://hl7.org/v3",
"name": "RIM Mapping"
}
],
"kind": "logical",
"abstract": false,
"type": "http://hl7.org/fhir/uv/omop/StructureDefinition/VisitDetail",
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Base",
"derivation": "specialization",
"snapshot": {
"extension": [
{
"url": "http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version",
"valueString": "5.0.0"
}
],
"element": [
{
"id": "VisitDetail",
"path": "VisitDetail",
"short": "Visit Detail OMOP Table",
"definition": "The VISIT_DETAIL table is an optional table used to represents details of each record in the parent VISIT_OCCURRENCE table. A good example of this would be the movement between units in a hospital during an inpatient stay or claim lines associated with a one insurance claim. For every record in the VISIT_OCCURRENCE table there may be 0 or more records in the VISIT_DETAIL table with a 1:n relationship where n may be 0. The VISIT_DETAIL table is structurally very similar to VISIT_OCCURRENCE table and belongs to the visit domain.",
"min": 0,
"max": "*",
"base": {
"path": "Base",
"min": 0,
"max": "*"
},
"isModifier": false,
"mapping": [
{
"identity": "rim",
"map": "n/a"
}
]
},
{
"id": "VisitDetail.visit-detail-id",
"path": "VisitDetail.visit_detail_id",
"short": "Visit Detail Identifier",
"definition": "Use this to identify unique interactions between a person and the health care system. This identifier links across the other CDM event tables to associate events with a visit detail.",
"min": 1,
"max": "1",
"base": {
"path": "VisitDetail.visit_detail_id",
"min": 1,
"max": "1"
},
"type": [
{
"code": "integer"
}
]
},
{
"id": "VisitDetail.person-id",
"path": "VisitDetail.person_id",
"short": "Person",
"definition": "Person",
"min": 1,
"max": "1",
"base": {
"path": "VisitDetail.person_id",
"min": 1,
"max": "1"
},
"type": [
{
"code": "Reference",
"targetProfile": [
"http://hl7.org/fhir/uv/omop/StructureDefinition/Person"
]
}
]
},
{
"id": "VisitDetail.visit-detail-concept-id",
"path": "VisitDetail.visit_detail_concept_id",
"short": "Visit Detail",
"definition": "This field contains a concept id representing the kind of visit detail, like inpatient or outpatient. All concepts in this field should be standard and belong to the Visit domain.",
"min": 1,
"max": "1",
"base": {
"path": "VisitDetail.visit_detail_concept_id",
"min": 1,
"max": "1"
},
"type": [
{
"code": "code"
}
]
},
{
"id": "VisitDetail.visit-detail-start-date",
"path": "VisitDetail.visit_detail_start_date",
"short": "Visit Detail Start Date",
"definition": "This is the date of the start of the encounter. This may or may not be equal to the date of the Visit the Visit Detail is associated with.",
"min": 1,
"max": "1",
"base": {
"path": "VisitDetail.visit_detail_start_date",
"min": 1,
"max": "1"
},
"type": [
{
"code": "date"
}
]
},
{
"id": "VisitDetail.visit-detail-start-datetime",
"path": "VisitDetail.visit_detail_start_datetime",
"short": "Visit Detail Start Datetime",
"definition": "Visit Detail Start Datetime",
"min": 0,
"max": "1",
"base": {
"path": "VisitDetail.visit_detail_start_datetime",
"min": 0,
"max": "1"
},
"type": [
{
"code": "dateTime"
}
]
},
{
"id": "VisitDetail.visit-detail-end-date",
"path": "VisitDetail.visit_detail_end_date",
"short": "Visit Detail End Date",
"definition": "This the end date of the patient-provider interaction. If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_date, then set the visit_end_date to the date of the data pull.",
"min": 1,
"max": "1",
"base": {
"path": "VisitDetail.visit_detail_end_date",
"min": 1,
"max": "1"
},
"type": [
{
"code": "date"
}
]
},
{
"id": "VisitDetail.visit-detail-end-datetime",
"path": "VisitDetail.visit_detail_end_datetime",
"short": "Visit Detail End Datetime",
"definition": "If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_datetime, then set the visit_end_datetime to the datetime of the data pull.",
"min": 0,
"max": "1",
"base": {
"path": "VisitDetail.visit_detail_end_datetime",
"min": 0,
"max": "1"
},
"type": [
{
"code": "dateTime"
}
]
},
{
"id": "VisitDetail.visit-detail-type-concept-id",
"path": "VisitDetail.visit_detail_type_concept_id",
"short": "Visit Detail Type",
"definition": "Use this field to understand the provenance of the visit detail record, or where the record comes from.",
"min": 1,
"max": "1",
"base": {
"path": "VisitDetail.visit_detail_type_concept_id",
"min": 1,
"max": "1"
},
"type": [
{
"code": "code"
}
]
},
{
"id": "VisitDetail.provider-id",
"path": "VisitDetail.provider_id",
"short": "Provider",
"definition": "There will only be one provider per **visit** record and the ETL document should clearly state how they were chosen (attending, admitting, etc.). This is a typical reason for leveraging the VISIT_DETAIL table as even though each VISIT_DETAIL record can only have one provider, there is no limit to the number of VISIT_DETAIL records that can be associated to a VISIT_OCCURRENCE record.",
"min": 0,
"max": "1",
"base": {
"path": "VisitDetail.provider_id",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Reference",
"targetProfile": [
"http://hl7.org/fhir/uv/omop/StructureDefinition/Provider"
]
}
]
},
{
"id": "VisitDetail.care-site-id",
"path": "VisitDetail.care_site_id",
"short": "Care Site",
"definition": "This field provides information about the Care Site where the Visit Detail took place.",
"min": 0,
"max": "1",
"base": {
"path": "VisitDetail.care_site_id",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Reference",
"targetProfile": [
"http://hl7.org/fhir/uv/omop/StructureDefinition/CareSite"
]
}
]
},
{
"id": "VisitDetail.visit-detail-source-value",
"path": "VisitDetail.visit_detail_source_value",
"short": "Visit Detail Source Value",
"definition": "This field houses the verbatim value from the source data representing the kind of visit detail that took place (inpatient, outpatient, emergency, etc.)",
"min": 0,
"max": "1",
"base": {
"path": "VisitDetail.visit_detail_source_value",
"min": 0,
"max": "1"
},
"type": [
{
"code": "string"
}
]
},
{
"id": "VisitDetail.visit-detail-source-concept-id",
"path": "VisitDetail.visit_detail_source_concept_id",
"short": "Visit Detail Source Concept",
"definition": "Visit Detail Source Concept",
"min": 0,
"max": "1",
"base": {
"path": "VisitDetail.visit_detail_source_concept_id",
"min": 0,
"max": "1"
},
"type": [
{
"code": "code"
}
]
},
{
"id": "VisitDetail.admitted-from-concept-id",
"path": "VisitDetail.admitted_from_concept_id",
"short": "Admitted From",
"definition": "Use this field to determine where the patient was admitted from. This concept is part of the visit domain and can indicate if a patient was admitted to the hospital from a long-term care facility, for example.",
"min": 0,
"max": "1",
"base": {
"path": "VisitDetail.admitted_from_concept_id",
"min": 0,
"max": "1"
},
"type": [
{
"code": "code"
}
]
},
{
"id": "VisitDetail.admitted-from-source-value",
"path": "VisitDetail.admitted_from_source_value",
"short": "Admitted From Source Value",
"definition": "Admitted From Source Value",
"min": 0,
"max": "1",
"base": {
"path": "VisitDetail.admitted_from_source_value",
"min": 0,
"max": "1"
},
"type": [
{
"code": "string"
}
]
},
{
"id": "VisitDetail.discharged-to-source-value",
"path": "VisitDetail.discharged_to_source_value",
"short": "Discharged To Source Value",
"definition": "Discharged To Source Value",
"min": 0,
"max": "1",
"base": {
"path": "VisitDetail.discharged_to_source_value",
"min": 0,
"max": "1"
},
"type": [
{
"code": "string"
}
]
},
{
"id": "VisitDetail.discharged-to-concept-id",
"path": "VisitDetail.discharged_to_concept_id",
"short": "Discharged To",
"definition": "Use this field to determine where the patient was discharged to after a visit. This concept is part of the visit domain and can indicate if a patient was transferred to another hospital or sent to a long-term care facility, for example. It is assumed that a person is discharged to home therefore there is not a standard concept id for \"home\". Use concept id = 0 when a person is discharged to home.",
"min": 0,
"max": "1",
"base": {
"path": "VisitDetail.discharged_to_concept_id",
"min": 0,
"max": "1"
},
"type": [
{
"code": "code"
}
]
},
{
"id": "VisitDetail.preceding-visit-detail-id",
"path": "VisitDetail.preceding_visit_detail_id",
"short": "Preceding Visit",
"definition": "Use this field to find the visit detail that occurred for the person prior to the given visit detail record. There could be a few days or a few years in between.",
"min": 0,
"max": "1",
"base": {
"path": "VisitDetail.preceding_visit_detail_id",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Reference",
"targetProfile": [
"http://hl7.org/fhir/uv/omop/StructureDefinition/VisitDetail"
]
}
]
},
{
"id": "VisitDetail.parent-visit-detail-id",
"path": "VisitDetail.parent_visit_detail_id",
"short": "Parent Visit",
"definition": "Use this field to find the visit detail that subsumes the given visit detail record. This is used in the case that a visit detail record needs to be nested beyond the VISIT_OCCURRENCE/VISIT_DETAIL relationship.",
"min": 0,
"max": "1",
"base": {
"path": "VisitDetail.parent_visit_detail_id",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Reference",
"targetProfile": [
"http://hl7.org/fhir/uv/omop/StructureDefinition/VisitDetail"
]
}
]
},
{
"id": "VisitDetail.visit-occurrence-id",
"path": "VisitDetail.visit_occurrence_id",
"short": "Visit Occurrence",
"definition": "Use this field to link the VISIT_DETAIL record to its VISIT_OCCURRENCE.",
"min": 1,
"max": "1",
"base": {
"path": "VisitDetail.visit_occurrence_id",
"min": 1,
"max": "1"
},
"type": [
{
"code": "Reference",
"targetProfile": [
"http://hl7.org/fhir/uv/omop/StructureDefinition/VisitOccurrence"
]
}
]
}
]
},
"differential": {
"element": [
{
"id": "VisitDetail",
"path": "VisitDetail",
"short": "Visit Detail OMOP Table",
"definition": "The VISIT_DETAIL table is an optional table used to represents details of each record in the parent VISIT_OCCURRENCE table. A good example of this would be the movement between units in a hospital during an inpatient stay or claim lines associated with a one insurance claim. For every record in the VISIT_OCCURRENCE table there may be 0 or more records in the VISIT_DETAIL table with a 1:n relationship where n may be 0. The VISIT_DETAIL table is structurally very similar to VISIT_OCCURRENCE table and belongs to the visit domain."
},
{
"id": "VisitDetail.visit-detail-id",
"path": "VisitDetail.visit_detail_id",
"short": "Visit Detail Identifier",
"definition": "Use this to identify unique interactions between a person and the health care system. This identifier links across the other CDM event tables to associate events with a visit detail.",
"min": 1,
"max": "1",
"type": [
{
"code": "integer"
}
]
},
{
"id": "VisitDetail.person-id",
"path": "VisitDetail.person_id",
"short": "Person",
"definition": "Person",
"min": 1,
"max": "1",
"type": [
{
"code": "Reference",
"targetProfile": [
"http://hl7.org/fhir/uv/omop/StructureDefinition/Person"
]
}
]
},
{
"id": "VisitDetail.visit-detail-concept-id",
"path": "VisitDetail.visit_detail_concept_id",
"short": "Visit Detail",
"definition": "This field contains a concept id representing the kind of visit detail, like inpatient or outpatient. All concepts in this field should be standard and belong to the Visit domain.",
"min": 1,
"max": "1",
"type": [
{
"code": "code"
}
]
},
{
"id": "VisitDetail.visit-detail-start-date",
"path": "VisitDetail.visit_detail_start_date",
"short": "Visit Detail Start Date",
"definition": "This is the date of the start of the encounter. This may or may not be equal to the date of the Visit the Visit Detail is associated with.",
"min": 1,
"max": "1",
"type": [
{
"code": "date"
}
]
},
{
"id": "VisitDetail.visit-detail-start-datetime",
"path": "VisitDetail.visit_detail_start_datetime",
"short": "Visit Detail Start Datetime",
"definition": "Visit Detail Start Datetime",
"min": 0,
"max": "1",
"type": [
{
"code": "dateTime"
}
]
},
{
"id": "VisitDetail.visit-detail-end-date",
"path": "VisitDetail.visit_detail_end_date",
"short": "Visit Detail End Date",
"definition": "This the end date of the patient-provider interaction. If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_date, then set the visit_end_date to the date of the data pull.",
"min": 1,
"max": "1",
"type": [
{
"code": "date"
}
]
},
{
"id": "VisitDetail.visit-detail-end-datetime",
"path": "VisitDetail.visit_detail_end_datetime",
"short": "Visit Detail End Datetime",
"definition": "If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_datetime, then set the visit_end_datetime to the datetime of the data pull.",
"min": 0,
"max": "1",
"type": [
{
"code": "dateTime"
}
]
},
{
"id": "VisitDetail.visit-detail-type-concept-id",
"path": "VisitDetail.visit_detail_type_concept_id",
"short": "Visit Detail Type",
"definition": "Use this field to understand the provenance of the visit detail record, or where the record comes from.",
"min": 1,
"max": "1",
"type": [
{
"code": "code"
}
]
},
{
"id": "VisitDetail.provider-id",
"path": "VisitDetail.provider_id",
"short": "Provider",
"definition": "There will only be one provider per **visit** record and the ETL document should clearly state how they were chosen (attending, admitting, etc.). This is a typical reason for leveraging the VISIT_DETAIL table as even though each VISIT_DETAIL record can only have one provider, there is no limit to the number of VISIT_DETAIL records that can be associated to a VISIT_OCCURRENCE record.",
"min": 0,
"max": "1",
"type": [
{
"code": "Reference",
"targetProfile": [
"http://hl7.org/fhir/uv/omop/StructureDefinition/Provider"
]
}
]
},
{
"id": "VisitDetail.care-site-id",
"path": "VisitDetail.care_site_id",
"short": "Care Site",
"definition": "This field provides information about the Care Site where the Visit Detail took place.",
"min": 0,
"max": "1",
"type": [
{
"code": "Reference",
"targetProfile": [
"http://hl7.org/fhir/uv/omop/StructureDefinition/CareSite"
]
}
]
},
{
"id": "VisitDetail.visit-detail-source-value",
"path": "VisitDetail.visit_detail_source_value",
"short": "Visit Detail Source Value",
"definition": "This field houses the verbatim value from the source data representing the kind of visit detail that took place (inpatient, outpatient, emergency, etc.)",
"min": 0,
"max": "1",
"type": [
{
"code": "string"
}
]
},
{
"id": "VisitDetail.visit-detail-source-concept-id",
"path": "VisitDetail.visit_detail_source_concept_id",
"short": "Visit Detail Source Concept",
"definition": "Visit Detail Source Concept",
"min": 0,
"max": "1",
"type": [
{
"code": "code"
}
]
},
{
"id": "VisitDetail.admitted-from-concept-id",
"path": "VisitDetail.admitted_from_concept_id",
"short": "Admitted From",
"definition": "Use this field to determine where the patient was admitted from. This concept is part of the visit domain and can indicate if a patient was admitted to the hospital from a long-term care facility, for example.",
"min": 0,
"max": "1",
"type": [
{
"code": "code"
}
]
},
{
"id": "VisitDetail.admitted-from-source-value",
"path": "VisitDetail.admitted_from_source_value",
"short": "Admitted From Source Value",
"definition": "Admitted From Source Value",
"min": 0,
"max": "1",
"type": [
{
"code": "string"
}
]
},
{
"id": "VisitDetail.discharged-to-source-value",
"path": "VisitDetail.discharged_to_source_value",
"short": "Discharged To Source Value",
"definition": "Discharged To Source Value",
"min": 0,
"max": "1",
"type": [
{
"code": "string"
}
]
},
{
"id": "VisitDetail.discharged-to-concept-id",
"path": "VisitDetail.discharged_to_concept_id",
"short": "Discharged To",
"definition": "Use this field to determine where the patient was discharged to after a visit. This concept is part of the visit domain and can indicate if a patient was transferred to another hospital or sent to a long-term care facility, for example. It is assumed that a person is discharged to home therefore there is not a standard concept id for \"home\". Use concept id = 0 when a person is discharged to home.",
"min": 0,
"max": "1",
"type": [
{
"code": "code"
}
]
},
{
"id": "VisitDetail.preceding-visit-detail-id",
"path": "VisitDetail.preceding_visit_detail_id",
"short": "Preceding Visit",
"definition": "Use this field to find the visit detail that occurred for the person prior to the given visit detail record. There could be a few days or a few years in between.",
"min": 0,
"max": "1",
"type": [
{
"code": "Reference",
"targetProfile": [
"http://hl7.org/fhir/uv/omop/StructureDefinition/VisitDetail"
]
}
]
},
{
"id": "VisitDetail.parent-visit-detail-id",
"path": "VisitDetail.parent_visit_detail_id",
"short": "Parent Visit",
"definition": "Use this field to find the visit detail that subsumes the given visit detail record. This is used in the case that a visit detail record needs to be nested beyond the VISIT_OCCURRENCE/VISIT_DETAIL relationship.",
"min": 0,
"max": "1",
"type": [
{
"code": "Reference",
"targetProfile": [
"http://hl7.org/fhir/uv/omop/StructureDefinition/VisitDetail"
]
}
]
},
{
"id": "VisitDetail.visit-occurrence-id",
"path": "VisitDetail.visit_occurrence_id",
"short": "Visit Occurrence",
"definition": "Use this field to link the VISIT_DETAIL record to its VISIT_OCCURRENCE.",
"min": 1,
"max": "1",
"type": [
{
"code": "Reference",
"targetProfile": [
"http://hl7.org/fhir/uv/omop/StructureDefinition/VisitOccurrence"
]
}
]
}
]
}
}