/*
 * Copyright 2013 NEHTA
 *
 * Licensed under the NEHTA Open Source (Apache) License; you may not use this
 * file except in compliance with the License. A copy of the License is in the
 * 'license.txt' file, which should be provided with this work.
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations
 * under the License.
 */

using Nehta.VendorLibrary.CDA.Common;

namespace Nehta.VendorLibrary.CDA.Generator.Enums
{
    /// <summary>
    /// CDA Document Type
    /// </summary>
    public enum CDADocumentType
    {
        /// <summary>
        /// Undefined, this is the default value if the enum is left unset.
        /// 
        /// The validation engine uses this to test and assert that the enum has been set (if required)
        /// and is therefore valid.
        /// </summary>

      /// <summary>
      /// Patient Summary
      /// </summary>
      [Name(Name = "Patient Summary", CodeSystem = "LOINC", Code = "60591-5", Identifier = "1.2.36.1.2001.1001.101.100.1002.120", Version = "1.3", Title = "Shared Health Summary")]
      SharedHeathSummary,

      /// <summary>
      /// Discharge Summarization Notes
      /// </summary>
      [Name(Name = "Discharge Summarization Note", CodeSystem = "LOINC", Code = "18842-5", Identifier = "1.2.36.1.2001.1001.101.100.1002.4", Version = "3.4", Title = "Discharge Summary")]
      DischargeSummary,

      /// <summary>
      /// SpecialistLetter
      /// </summary>
      [Name(Name = "Letter", CodeSystem = "LOINC", Code = "51852-2", Identifier = "1.2.36.1.2001.1001.101.100.1002.132", Version = "1.3", Title = "Specialist Letter")]
      SpecialistLetter,

      /// <summary>
      /// e-Referral
      /// </summary>
      [Name(Name = "Referral Note", CodeSystem = "LOINC", Code = "57133-1", Identifier = "1.2.36.1.2001.1001.101.100.1002.2", Version = "2.2", Title = "e-Referral")]
      EReferral,

      /// <summary>
      /// EventSummary
      /// </summary>
      [Name(Name = "Summarization of episode note", CodeSystem = "LOINC", Code = "34133-9", Identifier = "1.2.36.1.2001.1001.101.100.1002.136", Version = "1.2", Title = "Event Summary")]
      EventSummary,

      /// <summary>
      /// Medicare DVA Benefits Report
      /// </summary>
      [Name(Name = "Medicare/DVA Benefits Report", CodeSystem = "NCTIS", Code = "100.16644", Identifier = "1.2.36.1.2001.1001.101.100.1002.140", Version = "1.1", Title = "Medicare/DVA Benefits Report")]
      MedicareDvaBenefitsReport,

      /// <summary>
      /// Australian Organ Donor Register
      /// </summary>
      [Name(Name = "Australian Organ Donor Register", CodeSystem = "NCTIS", Code = "100.16671", Identifier = "1.2.36.1.2001.1001.101.100.1002.147", Version = "1.1", Title = "Australian Organ Donor Register")]
      AustralianOrganDonorRegister,

      /// <summary>
      /// Australian Childhood Immunisation Register
      /// </summary>
      [Name(Name = "Australian Childhood Immunisation Register", CodeSystem = "NCTIS", Code = "100.16659", Identifier = "1.2.36.1.2001.1001.101.100.1002.144", Version = "1.1", Title = "Australian Childhood Immunisation Register")]
      AustralianChildhoodImmunisationRegister,

      /// <summary>
      /// Pharmaceutical Benefits Report
      /// </summary>
      [Name(Name = "Pharmaceutical Benefits Report", CodeSystem = "NCTIS", Code = "100.16650", Identifier = "1.2.36.1.2001.1001.101.100.1002.142", Version = "1.1", Title = "Pharmaceutical Benefits Report")]
      PharmaceuticalBenefitsReport,

      /// <summary>
      /// Advance Care Directive Custodian Record 
      /// </summary>
      [Name(Name = "Advance Care Directive Custodian Record", CodeSystem = "NCTIS", Code = "100.16696", Identifier = "1.2.36.1.2001.1001.101.100.1002.156", Version = "1.0", Title = "Advance Care Directive Custodian Record")]
      AdvanceCareDirectiveCustodianRecord,

      /// <summary>
      /// Consumer Entered Health Summary
      /// </summary>
      [Name(Name = "Consumer Entered Health Summary", CodeSystem = "NCTIS", Code = "100.16685", Identifier = "1.2.36.1.2001.1001.101.100.1002.153", Version = "1.0", Title = "Consumer Entered Health Summary")]
      ConsumerEnteredHealthSummary,

      /// <summary>
      /// Consumer Entered Notes
      /// </summary>
      [Name(Name = "Consumer Entered Notes", CodeSystem = "NCTIS", Code = "100.16681", Identifier = "1.2.36.1.2001.1001.101.100.1002.151", Version = "1.0", Title = "Consumer Entered Notes")]
      ConsumerEnteredNotes,

      /// <summary>
      /// Consumer Entered Achievements
      /// </summary>
      [Name(Name = "Consumer Entered Achievements", CodeSystem = "NCTIS", Code = "100.16812", Identifier = "1.2.36.1.2001.1001.100.1002.183", Version = "1.0", Title = "Consumer Entered Achievements")]
      ConsumerEnteredAchievements,

      /// <summary>
      /// NSW Consumer Entered Achievements
      /// </summary>
      [Name(Name = "Consumer Entered Achievements", CodeSystem = "NCTIS", Code = "100.16812", Identifier = "1.2.36.1.2001.1001.101.100.1002.206", Version = "1.0", Title = "Consumer Entered Achievements")]
      NSWConsumerEnteredAchievements,

      /// <summary>
      /// Consolidated View
      /// </summary>
      [Name(Name = "Consolidated View", CodeSystem = "NCTIS", Code = "100.16725", Identifier = "1.2.36.1.2001.1001.100.1002.160", Version = "1.0", Title = "Consolidated View")]
      ConsolidatedView,

      /// <summary>
      /// Medicare View
      /// </summary>
      [Name(Name = "Medicare Overview", CodeSystem = "NCTIS", Code = "100.16767", Identifier = "1.2.36.1.2001.1001.100.1002.172", Version = "1.0", Title = "Medicare Overview")]
      MedicareOverview,

      /// <summary>
      /// PCEHR Prescription Record
      /// </summary>
      [Name(Name = "PCEHR Prescription Record", CodeSystem = "NCTIS", Code = "100.16764", Identifier = "1.2.36.1.2001.1001.100.1002.170", Version = "1.0", Title = "PCEHR Prescription Record")]
      PrescriptionRecord,

      /// <summary>
      /// PCEHR Dispense Record
      /// </summary>
      [Name(Name = "PCEHR Dispense Record", CodeSystem = "NCTIS", Code = "100.16765", Identifier = "1.2.36.1.2001.1001.100.1002.171", Version = "1.0", Title = "PCEHR Dispense Record")]
      DispenseRecord,

      /// <summary>
      /// PCEHR Prescription And Dispense View
      /// </summary>
      [Name(Name = "PCEHR Prescription and Dispense View", CodeSystem = "NCTIS", Code = "100.16789", Identifier = "1.2.36.1.2001.1001.100.1002.179", Version = "1.0", Title = "PCEHR Prescription and Dispense View")]
      PrescriptionAndDispenseView,

      /// <summary>
      /// PCEHR Prescription Record
      /// </summary>
      [Name(Name = "Prescription Document", CodeSystem = "LOINC", Code = "64287-6", Identifier = "1.2.36.1.2001.1001.101.100.1002.74", Version = "2.1", Title = "Prescription Document")]
      EPrescription,

      /// <summary>
      /// Medication Dispensed
      /// </summary>
      [Name(Name = "Medication Dispensed", CodeSystem = "LOINC", Code = "60593-1", Identifier = "1.2.36.1.2001.1001.101.100.1002.75", Version = "2.1", Title = "Medication Dispensed")]
      EDispenseRecord,

      /// <summary>
      /// Medication Dispensed
      /// </summary>
      [Name(Name = "Prescription Request", CodeSystem = "NCTIS", Code = "100.16285", Identifier = "1.2.36.1.2001.1001.101.100.1002.101", Version = "1.1", Title = "Prescription Request")]
      EPrescriptionRequest,

      /// <summary>
      /// Consumer Entered Measurements
      /// </summary>
      [Name(Name = "Consumer Entered Measurements", CodeSystem = "NCTIS", Code = "100.16870", Identifier = "1.2.36.1.2001.1001.100.1002.208", Version = "1.1", Title = "Consumer Entered Measurements")]
      ConsumerEnteredMeasurements,

      /// <summary>
      /// Healthcare Provider Entered Measurements
      /// </summary>
      [Name(Name = "Healthcare Provider Entered Measurements", CodeSystem = "NCTIS", Code = "100.16871", Identifier = "1.2.36.1.2001.1001.100.1002.209", Version = "1.0", Title = "Healthcare Provider Entered Measurements")]
      HealthcareProviderEnteredMeasurements,

      /// <summary>
      /// Physical Measurements View
      /// </summary>
      [Name(Name = "Physical Measurements View", CodeSystem = "NCTIS", Code = "100.16872", Identifier = "1.2.36.1.2001.1001.100.1002.210", Version = "1.0", Title = "Physical Measurements View")]
      PhysicalMeasurementsView,

      #region CeHR 

      /// <summary>
      /// NSW Health Check Assessment
      /// </summary>
      [Name(Name = "Health Check Assessment", CodeSystem = "NCTIS", Code = "100.16920", Identifier = "1.2.36.1.2001.1001.100.1002.216", Version = "1.1", Title = "NSW Health Check Assessment")]
      NSWHealthCheckAssessment,

      /// <summary>
      /// Child Parent Questionnaire
      /// </summary>
      [Name(Name = "Child Parent Questionnaire", CodeSystem = "NCTIS", Code = "100.16919", Identifier = "1.2.36.1.2001.1001.100.1002.215", Version = "1.1", Title = "NSW Child Parent Questionnaire")]
      ConsumerQuestionnaire,

      /// <summary>
      /// NSW Child e-Health Record Birth Details
      /// </summary>
      [Name(Name = "NSW Child e-Health Record Birth Details", CodeSystem = "NCTIS", Code = "100.16939", Identifier = "1.2.36.1.2001.1001.100.1002.214", Version = "1.0", Title = "NSW Child e-Health Record Birth Details")]
      NSWChildeHealthRecordBirthDetails,

      #endregion

    }
}
