cdac.medinfo.sdk.hl7282.baselibs.segments

## Class BPO

- java.lang.Object
- - cdac.medinfo.sdk.hl7282.baselibs.segments.Segment
  - - cdac.medinfo.sdk.hl7282.baselibs.segments.BPO

- All Implemented Interfaces:
    ISegment

      public class BPO
      extends Segment

  BPO - Blood Product Order Segment.

  Blood product order messages require additional information that is not available in other standard HL7 order messages.Blood product order messages need to contain accompanying details regarding the blood product component, such as special processing requirements (e.g. irradiation and leukoreduction) and the amount of the blood product to be administered.

  Represents an HL7 BPO message segment. This segment has the following fields:

  BPO-1: Set ID _ BPO (SI)Required
  BPO-2: BP Universal Service Identifier (CWE)Required
  BPO-3: BP Processing Requirements (CWE)Optional
  BPO-4: BP Quantity (NM)Required
  BPO-5: BP Amount (NM)Optional
  BPO-6: BP Units (CWE)Optional
  BPO-7: BP Intended Use Date/Time (DTM)Optional
  BPO-8: BP Intended Dispense From Location (PL)Optional
  BPO-9: BP Intended Dispense From Address (XAD)Optional
  BPO-10: BP Requested Dispense Date/Time (DTM)Optional
  BPO-11: BP Requested Dispense To Location (PL)Optional
  BPO-12: BP Requested Dispense To Address (XAD)Optional
  BPO-13: BP Indication for Use (CWE)Optional
  BPO-14: BP Informed Consent Indicator (ID)Optional

  This class provides mechanism to validate message against HL7 v 2.8.2 standard. The class provides accessors & mutators for the elements mentioned above. The class has validate method which validates Message against HL7 v 2.8.2 standard.

  User can also create Segment through `SegmentFactory`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `BPO()` Constructs the BPO segment.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addBPIndicationforUse(CWE objbPIndicationforUse)` Add the BP Indication for Use.
    `void` | `addBPIndicationforUse(java.lang.String strIdentifier, java.lang.String strText, java.lang.String strNameOfCodingSystem, java.lang.String strAlternateIdentifier, java.lang.String strAlternateText, java.lang.String strNameOfAlternateCodingSystem, java.lang.String strCodingSystemVersionID, java.lang.String strAlternateCodingSystemVersionId, java.lang.String strOriginalText, java.lang.String strSecondAlternateIdentifier, java.lang.String strSecondAlternateText, java.lang.String strNameofSecondAlternateCodingSystem, java.lang.String strSecondAlternateCodingSystemVersionID, java.lang.String strCodingSystemOID, java.lang.String strValueSetOID, java.lang.String strValueSetVersionID, java.lang.String strAlternateCodingSystemOID, java.lang.String strAlternateValueSetOID, java.lang.String strAlternateValueSetVersionID, java.lang.String strSecondAlternateCodingSystemOID, java.lang.String strSecondAlternateValueSetOID, java.lang.String strSecondAlternateValueSetVersionID)` Add the BP Indication for Use.
    `void` | `addBPProcessingRequirements(CWE objbPProcessingRequirements)` Add the BP Processing Requirements.
    `void` | `addBPProcessingRequirements(java.lang.String strIdentifier, java.lang.String strText, java.lang.String strNameOfCodingSystem, java.lang.String strAlternateIdentifier, java.lang.String strAlternateText, java.lang.String strNameOfAlternateCodingSystem, java.lang.String strCodingSystemVersionID, java.lang.String strAlternateCodingSystemVersionId, java.lang.String strOriginalText, java.lang.String strSecondAlternateIdentifier, java.lang.String strSecondAlternateText, java.lang.String strNameofSecondAlternateCodingSystem, java.lang.String strSecondAlternateCodingSystemVersionID, java.lang.String strCodingSystemOID, java.lang.String strValueSetOID, java.lang.String strValueSetVersionID, java.lang.String strAlternateCodingSystemOID, java.lang.String strAlternateValueSetOID, java.lang.String strAlternateValueSetVersionID, java.lang.String strSecondAlternateCodingSystemOID, java.lang.String strSecondAlternateValueSetOID, java.lang.String strSecondAlternateValueSetVersionID)` Add the BP Processing Requirements.
    `NM` | `getBPAmount()` Retrieves the BP Amount.
    `ISingleCollection<CWE>` | `getBPIndicationforUse()` Retrieves the BP Indication for Use.
    `ID` | `getBPInformedConsentIndicator()` Retrieves the BP Informed Consent Indicator.
    `XAD` | `getBPIntendedDispenseFromAddress()` Retrieves the BP Intended Dispense From Address.
    `PL` | `getBPIntendedDispenseFromLocation()` Retrieves the BP Intended Dispense From Location.
    `DTM` | `getBPIntendedUseDateTime()` Retrieves the BP Intended Use Date Time.
    `ISingleCollection<CWE>` | `getBPProcessingRequirements()` Retrieves the BP Processing Requirements.
    `NM` | `getBPQuantity()` Retrieves the BP Quantity.
    `DTM` | `getBPRequestedDispenseDateTime()` Retrieves the BP Requested Dispense Date Time.
    `XAD` | `getBPRequestedDispenseToAddress()` Retrieves the BP Requested Dispense To Address.
    `PL` | `getBPRequestedDispenseToLocation()` Retrieves the BP Requested Dispense To Location.
    `CWE` | `getBPUnits()` Retrieves the BP Units.
    `CWE` | `getBPUniversalServiceIdentifier()` Retrieves the BP Universal Service Identifier.
    `SI` | `getSetID_BPO()` Retrieves the Set ID BPO.
    `void` | `setBPAmount(NM objbPAmount)` Set the BP Amount.
    `void` | `setBPAmount(java.lang.String strAmount)` Set the BP Amount.
    `void` | `setBPIndicationforUse(ISingleCollection<CWE> objbPIndicationforUseList)` Set the BP Indication for Use.
    `void` | `setBPInformedConsentIndicator(ID objbPInformedConsentIndicator)` Set the BP Informed Consent Indicator.
    `void` | `setBPInformedConsentIndicator(java.lang.String strBPInformedConsentIndicator)` Set the BP Informed Consent Indicator.
    `void` | `setBPIntendedDispenseFromAddress(SAD objStreetAddress, java.lang.String strOtherDesignation, java.lang.String strCity, java.lang.String strStateOrProvince, java.lang.String strZipOrPostalCode, java.lang.String strCountry, java.lang.String strAddressType, java.lang.String strOtherGeographicDesignation, CWE objCountyParishCode, CWE objCensusTract, java.lang.String strAddressRepresentationCode, DTM objEffectiveDate, DTM objExpirationDate, CWE objEXpirationReason, java.lang.String strTemporaryIndicator, java.lang.String strBadAddressIndicator, java.lang.String strAddressUsage, java.lang.String strAddressee, java.lang.String strComment, java.lang.String strPreferenceOrder, CWE objProtectionCode, EI objAddressIdentifier)` Set the BP Intended Dispense From Address.
    `void` | `setBPIntendedDispenseFromAddress(XAD objbPIntendedDispenseFromAddress)` Set the BP Intended Dispense From Address.
    `void` | `setBPIntendedDispenseFromLocation(HD objPointOfCare, HD objRoom, HD objBed, HD objFacility, java.lang.String strLocationStatus, java.lang.String strPersonLocationType, java.lang.String strBuilding, java.lang.String strFloor, java.lang.String strLocationDescription, EI objComprehensiveLocationIdentifier, HD objAssigningAuthorityForLocation)` Set the BP Intended Dispense From Location.
    `void` | `setBPIntendedDispenseFromLocation(PL objbPIntendedDispenseFromLocation)` Set the BP Intended Dispense From Location.
    `void` | `setBPIntendedUseDateTime(DTM objbPIntendedUseDateTime)` Set the BP Intended Use Date Time.
    `void` | `setBPIntendedUseDateTime(java.lang.String strTime)` Set the BP Intended Use Date Time.
    `void` | `setBPProcessingRequirements(ISingleCollection<CWE> objbPProcessingRequirementsList)` Set the BP Processing Requirements.
    `void` | `setBPQuantity(NM objbPQuantity)` Set the BP Quantity.
    `void` | `setBPQuantity(java.lang.String strQuantity)` Set the BP Quantity.
    `void` | `setBPRequestedDispenseDateTime(DTM objbPRequestedDispenseDateTime)` Set the BP Requested Dispense Date Time.
    `void` | `setBPRequestedDispenseDateTime(java.lang.String strTime)` Set the BP Requested Dispense Date Time.
    `void` | `setBPRequestedDispenseToAddress(SAD objStreetAddress, java.lang.String strOtherDesignation, java.lang.String strCity, java.lang.String strStateOrProvince, java.lang.String strZipOrPostalCode, java.lang.String strCountry, java.lang.String strAddressType, java.lang.String strOtherGeographicDesignation, CWE objCountyParishCode, CWE objCensusTract, java.lang.String strAddressRepresentationCode, DTM objEffectiveDate, DTM objExpirationDate, CWE objEXpirationReason, java.lang.String strTemporaryIndicator, java.lang.String strBadAddressIndicator, java.lang.String strAddressUsage, java.lang.String strAddressee, java.lang.String strComment, java.lang.String strPreferenceOrder, CWE objProtectionCode, EI objAddressIdentifier)` Set the BP Requested Dispense To Address.
    `void` | `setBPRequestedDispenseToAddress(XAD objbPRequestedDispenseToAddress)` Set the BP Requested Dispense To Address.
    `void` | `setBPRequestedDispenseToLocation(HD objPointOfCare, HD objRoom, HD objBed, HD objFacility, java.lang.String strLocationStatus, java.lang.String strPersonLocationType, java.lang.String strBuilding, java.lang.String strFloor, java.lang.String strLocationDescription, EI objComprehensiveLocationIdentifier, HD objAssigningAuthorityForLocation)` Set the BP Requested Dispense To Location.
    `void` | `setBPRequestedDispenseToLocation(PL objbPRequestedDispenseToLocation)` Set the BP Requested Dispense To Location.
    `void` | `setBPUnits(CWE objbPUnits)` Set the BP Units.
    `void` | `setBPUnits(java.lang.String strIdentifier, java.lang.String strText, java.lang.String strNameOfCodingSystem, java.lang.String strAlternateIdentifier, java.lang.String strAlternateText, java.lang.String strNameOfAlternateCodingSystem, java.lang.String strCodingSystemVersionID, java.lang.String strAlternateCodingSystemVersionId, java.lang.String strOriginalText, java.lang.String strSecondAlternateIdentifier, java.lang.String strSecondAlternateText, java.lang.String strNameofSecondAlternateCodingSystem, java.lang.String strSecondAlternateCodingSystemVersionID, java.lang.String strCodingSystemOID, java.lang.String strValueSetOID, java.lang.String strValueSetVersionID, java.lang.String strAlternateCodingSystemOID, java.lang.String strAlternateValueSetOID, java.lang.String strAlternateValueSetVersionID, java.lang.String strSecondAlternateCodingSystemOID, java.lang.String strSecondAlternateValueSetOID, java.lang.String strSecondAlternateValueSetVersionID)` Set the BP Units.
    `void` | `setBPUniversalServiceIdentifier(CWE objbPUniversalServiceID)` Set the BP Universal Service ID.
    `void` | `setBPUniversalServiceIdentifier(java.lang.String strIdentifier, java.lang.String strText, java.lang.String strNameOfCodingSystem, java.lang.String strAlternateIdentifier, java.lang.String strAlternateText, java.lang.String strNameOfAlternateCodingSystem, java.lang.String strCodingSystemVersionID, java.lang.String strAlternateCodingSystemVersionId, java.lang.String strOriginalText, java.lang.String strSecondAlternateIdentifier, java.lang.String strSecondAlternateText, java.lang.String strNameofSecondAlternateCodingSystem, java.lang.String strSecondAlternateCodingSystemVersionID, java.lang.String strCodingSystemOID, java.lang.String strValueSetOID, java.lang.String strValueSetVersionID, java.lang.String strAlternateCodingSystemOID, java.lang.String strAlternateValueSetOID, java.lang.String strAlternateValueSetVersionID, java.lang.String strSecondAlternateCodingSystemOID, java.lang.String strSecondAlternateValueSetOID, java.lang.String strSecondAlternateValueSetVersionID)` Set the BP Universal Service Identifier.
    `void` | `setSetID_BPO(SI objsetID_BPO)` Set the Set ID BPO.
    `void` | `setSetID_BPO(java.lang.String strSetID_BPO)` Set the Set ID BPO.
    `boolean` | `validate()` Validates HL7 Message objects .

    - ### Methods inherited from class cdac.medinfo.sdk.hl7282.baselibs.segments.Segment

      `addUnRecognizedField, dumpSegment, getFields, getName, getUnrecognizedFields, moveToNextSegment, parse, removeDataElement, removeDataElement, serialize, setName, setUnRecognizedField, updateDataElement, updateDataElement, writeToXML`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### BPO

          public BPO()

      Constructs the BPO segment.

  - ### Method Detail

    - #### getBPAmount

          public NM getBPAmount()

      Retrieves the BP Amount. This field specify the order amount(volume) associated with each quantity of blood product.
      Returns:
        NM - bPAmount

    - #### getBPIndicationforUse

          public ISingleCollection<CWE> getBPIndicationforUse()

      Retrieves the BP Indication for Use. This field specify the reason that the blood product is order.
      Returns:
        ISingleCollection - bPIndicationforUse

    - #### getBPInformedConsentIndicator

          public ID getBPInformedConsentIndicator()

      Retrieves the BP Informed Consent Indicator. This field indicates whether consent for the transfusion have been obtained.
      Returns:
        ID - bPInformedConsentIndicator

    - #### getBPIntendedDispenseFromAddress

          public XAD getBPIntendedDispenseFromAddress()

      Retrieves the BP Intended Dispense From Address. This field contains the actual address of the location from which the blood component is to be dispensed.
      Returns:
        XAD - bPIntendedDispenseFromAddress

    - #### getBPIntendedDispenseFromLocation

          public PL getBPIntendedDispenseFromLocation()

      Retrieves the BP Intended Dispense From Location. This field specify the location from which the blood component is to be dispensed.
      Returns:
        PL - bPIntendedDispenseFromLocation

    - #### getBPIntendedUseDateTime

          public DTM getBPIntendedUseDateTime()

      Retrieves the BP Intended Use Date Time. This field specify the date/time of the placer intends to use the blood product that is being ordered.
      Returns:
        DTM - bPIntendedUseDateTime

    - #### getBPProcessingRequirements

          public ISingleCollection<CWE> getBPProcessingRequirements()

      Retrieves the BP Processing Requirements. This field specify the additional information about the blood component class associated with the Universal Service ID.
      Returns:
        ISingleCollection - bPProcessingRequirements

    - #### getBPQuantity

          public NM getBPQuantity()

      Retrieves the BP Quantity. This field specify the number of blood products ordered.
      Returns:
        NM - bPQuantity

    - #### getBPRequestedDispenseDateTime

          public DTM getBPRequestedDispenseDateTime()

      Retrieves the BP Requested Dispense Date Time. This field specify the date/time that the requested blood products must be ready to dispense.
      Returns:
        DTM - bPRequestedDispenseDateTime

    - #### getBPRequestedDispenseToAddress

          public XAD getBPRequestedDispenseToAddress()

      Retrieves the BP Requested Dispense To Address. This field specify the actual address of the location to which the blood component is to be dispensed.
      Returns:
        XAD - bPRequestedDispenseToAddress

    - #### getBPRequestedDispenseToLocation

          public PL getBPRequestedDispenseToLocation()

      Retrieves the BP Requested Dispense To Location. This field specify the inpatient or outpatient location to which the blood component is to be dispensed.
      Returns:
        PL - bPRequestedDispenseToLocation

    - #### getBPUnits

          public CWE getBPUnits()

      Retrieves the BP Units. This field specify the units of measure for the blood product amount.
      Returns:
        CWE - bPUnits

    - #### getBPUniversalServiceIdentifier

          public CWE getBPUniversalServiceIdentifier()

      Retrieves the BP Universal Service Identifier. This field specify the identifier code for the requested blood product.
      Returns:
        CWE - bPUniversalServiceIdentifier

    - #### getSetID_BPO

          public SI getSetID_BPO()

      Retrieves the Set ID BPO. This field specify the sequence number for the BPO segment within the message.
      Returns:
        SI - setID_BPO

    - #### setBPAmount

          public void setBPAmount(java.lang.String strAmount)

      Set the BP Amount. This field specify the order amount(volume) associated with each quantity of blood product.
      Parameters:
        `strAmount` - This field contains the String Value of Amount.

    - #### setBPAmount

          public void setBPAmount(NM objbPAmount)

      Set the BP Amount. This field specify the order amount(volume) associated with each quantity of blood product.
      Parameters:
        `objbPAmount` - Object of BP Amount.

    - #### addBPIndicationforUse

          public void addBPIndicationforUse(java.lang.String strIdentifier,
                                   java.lang.String strText,
                                   java.lang.String strNameOfCodingSystem,
                                   java.lang.String strAlternateIdentifier,
                                   java.lang.String strAlternateText,
                                   java.lang.String strNameOfAlternateCodingSystem,
                                   java.lang.String strCodingSystemVersionID,
                                   java.lang.String strAlternateCodingSystemVersionId,
                                   java.lang.String strOriginalText,
                                   java.lang.String strSecondAlternateIdentifier,
                                   java.lang.String strSecondAlternateText,
                                   java.lang.String strNameofSecondAlternateCodingSystem,
                                   java.lang.String strSecondAlternateCodingSystemVersionID,
                                   java.lang.String strCodingSystemOID,
                                   java.lang.String strValueSetOID,
                                   java.lang.String strValueSetVersionID,
                                   java.lang.String strAlternateCodingSystemOID,
                                   java.lang.String strAlternateValueSetOID,
                                   java.lang.String strAlternateValueSetVersionID,
                                   java.lang.String strSecondAlternateCodingSystemOID,
                                   java.lang.String strSecondAlternateValueSetOID,
                                   java.lang.String strSecondAlternateValueSetVersionID)

      Add the BP Indication for Use. This field specify the reason that the blood product is order.
      Parameters:
        `strIdentifier` - Specifies of characters (the code) that uniquely identifies the item being referenced.
        `strText` - Specifies The descriptive or textual name of the identifier, e.g., myocardial infarction.
        `strNameOfCodingSystem` - Identifies the coding scheme being used in the identifier component.
        `strAlternateIdentifier` - Specifies an alternate sequence of characters (the code) that uniquely identifies the item being referenced.
        `strAlternateText` - Specifies the descriptive or textual name of the alternate identifier. See usage note in section introduction.
        `strNameOfAlternateCodingSystem` - Identifies the coding scheme being used in the alternate identifier component.
        `strCodingSystemVersionID` - A sequence of characters that uniquely identifies a second alternate code.
        `strAlternateCodingSystemVersionId` - This component carries the version for the coding system identified by components 4-6.
        `strOriginalText` - The text as seen and/or selected by the user who entered the data.
        `strSecondAlternateIdentifier` - A sequence of characters that uniquely identifies a second alternate code.
        `strSecondAlternateText` - The descriptive or textual name of the alternate identifier.
        `strNameofSecondAlternateCodingSystem` - Identifies the coding scheme being used in the alternate identifier component.
        `strSecondAlternateCodingSystemVersionID` - This component carries the version for the coding system identified by components 10-12.
        `strCodingSystemOID` - This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.3.
        `strValueSetOID` - This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.1 is obtained.
        `strValueSetVersionID` - This component carries the version for the value set identified by CWE.15. The version is a date. The date is the date/time that the value set being used was published.
        `strAlternateCodingSystemOID` - This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.6.
        `strAlternateValueSetOID` - This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.4 is obtained.
        `strAlternateValueSetVersionID` - This component carries the version for the value set identified by CWE.18. The version is a date.
        `strSecondAlternateCodingSystemOID` - This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.12.
        `strSecondAlternateValueSetOID` - This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.10 is obtained.
        `strSecondAlternateValueSetVersionID` - This component carries the version for the value set identified by CWE.21. The version is a date.

    - #### addBPIndicationforUse

          public void addBPIndicationforUse(CWE objbPIndicationforUse)

      Add the BP Indication for Use. This field specify the reason that the blood product is order.
      Parameters:
        `objbPIndicationforUse` - Object of BP Indication for Use.

    - #### setBPIndicationforUse

          public void setBPIndicationforUse(ISingleCollection<CWE> objbPIndicationforUseList)

      Set the BP Indication for Use. This field specify the reason that the blood product is order.
      Parameters:
        `objbPIndicationforUseList` - List of BP Indication for Use.

    - #### setBPInformedConsentIndicator

          public void setBPInformedConsentIndicator(java.lang.String strBPInformedConsentIndicator)

      Set the BP Informed Consent Indicator. This field indicates whether consent for the transfusion have been obtained.
      Parameters:
        `strBPInformedConsentIndicator` - String which to set as BP Informed Consent Indicator

    - #### setBPInformedConsentIndicator

          public void setBPInformedConsentIndicator(ID objbPInformedConsentIndicator)

      Set the BP Informed Consent Indicator. This field indicates whether consent for the transfusion have been obtained.
      Parameters:
        `objbPInformedConsentIndicator` - Object of BP Informed Consent Indicator.

    - #### setBPIntendedDispenseFromAddress

          public void setBPIntendedDispenseFromAddress(SAD objStreetAddress,
                                              java.lang.String strOtherDesignation,
                                              java.lang.String strCity,
                                              java.lang.String strStateOrProvince,
                                              java.lang.String strZipOrPostalCode,
                                              java.lang.String strCountry,
                                              java.lang.String strAddressType,
                                              java.lang.String strOtherGeographicDesignation,
                                              CWE objCountyParishCode,
                                              CWE objCensusTract,
                                              java.lang.String strAddressRepresentationCode,
                                              DTM objEffectiveDate,
                                              DTM objExpirationDate,
                                              CWE objEXpirationReason,
                                              java.lang.String strTemporaryIndicator,
                                              java.lang.String strBadAddressIndicator,
                                              java.lang.String strAddressUsage,
                                              java.lang.String strAddressee,
                                              java.lang.String strComment,
                                              java.lang.String strPreferenceOrder,
                                              CWE objProtectionCode,
                                              EI objAddressIdentifier)

      Set the BP Intended Dispense From Address. This field contains the actual address of the location from which the blood component is to be dispensed.
      Parameters:
        `objStreetAddress` - Specifies the street address.
        `strOtherDesignation` - Specifies the Second line of address.
        `strCity` - The city, or district or place where the addressee is located.
        `strStateOrProvince` - Specifies the state or province where the addressee is located.
        `strZipOrPostalCode` - Specifies the zip or postal code where the addressee is located.
        `strCountry` - Specifies the country where the addressee is located.
        `strAddressType` - Specifies the kind or type of address.
        `strOtherGeographicDesignation` - Specifies any other geographic designation.
        `objCountyParishCode` - Specifies a code that represents the county in which the specified address resides.
        `objCensusTract` - Specifies a code that represents the census tract in which the specified address resides.
        `strAddressRepresentationCode` - Specifies representations of the same name/address Suggested values are I,A,P [Refer table 0465]
        `objEffectiveDate` - It is The first date, if known, on which the address is valid and active.
        `objExpirationDate` - It is The last date, if known, on which the address is valid and active.
        `objExpirationReason` - indicates why this address was marked as ended.
        `strTemporaryIndicator` - indicates whether address is considered temporary .
        `strBadAddressIndicator` - indicates whether it is possible to contact the owning entity.
        `strAddressUsage` - indicates how the address is intended to be used.
        `strAddressee` - indicates the name of the person whose address is intended to be used.
        `strComment` - indicated descriptive information
        `strPreferenceOrder` - preference order
        `objProtectionCode` - indicates that an address need to be protected
        `objAdressIdentifier` - indicates a unique identifier for address

    - #### setBPIntendedDispenseFromAddress

          public void setBPIntendedDispenseFromAddress(XAD objbPIntendedDispenseFromAddress)

      Set the BP Intended Dispense From Address. This field contains the actual address of the location from which the blood component is to be dispensed.
      Parameters:
        `objbPIntendedDispenseFromAddress` - Object of BP Intended Dispense From Address.

    - #### setBPIntendedDispenseFromLocation

          public void setBPIntendedDispenseFromLocation(HD objPointOfCare,
                                               HD objRoom,
                                               HD objBed,
                                               HD objFacility,
                                               java.lang.String strLocationStatus,
                                               java.lang.String strPersonLocationType,
                                               java.lang.String strBuilding,
                                               java.lang.String strFloor,
                                               java.lang.String strLocationDescription,
                                               EI objComprehensiveLocationIdentifier,
                                               HD objAssigningAuthorityForLocation)

      Set the BP Intended Dispense From Location. This field specify the location from which the blood component is to be dispensed.
      Parameters:
        `strPointOfCare` - Specifies the code for the point where patient care is administered.
        `strRoom` - Specifies the code for the patient's room.
        `strBed` - Specifies the code for the patient's bed.
        `objFacility` - Specifies to site interpretation but generally describes the highest level physical designation of an institution, medical center or enterprise.
        `strLocationStatus` - Specifies the code for the status or availability of the location.
        `strPersonLocationType` - Specifies the categorization of the person's location defined by facility, building, floor, point of care, room or bed.
        `strBuilding` - Specifies code for the building where the person is located.
        `strFloor` - Specifies the code for the floor where the person is located.
        `strLocationDescription` - Specifies describes the location in free text.
        `objComprehensiveLocationIdentifier` - Specifies represents the physical location as a whole without regard for the individual components.
        `objAssigningAuthorityForLocation` - Specifies the entity that creates the data for the individual physical location components.

    - #### setBPIntendedDispenseFromLocation

          public void setBPIntendedDispenseFromLocation(PL objbPIntendedDispenseFromLocation)

      Set the BP Intended Dispense From Location. This field specify the location from which the blood component is to be dispensed.
      Parameters:
        `objbPIntendedDispenseFromLocation` - object of BP Intended Dispense From Location.

    - #### setBPIntendedUseDateTime

          public void setBPIntendedUseDateTime(java.lang.String strTime)

      Set the BP Intended Use Date Time. This field specify the date/time of the placer intends to use the blood product that is being ordered.
      Parameters:
        `strTime` - Specifies a point in time using a 24-hour clock notation.

    - #### setBPIntendedUseDateTime

          public void setBPIntendedUseDateTime(DTM objbPIntendedUseDateTime)

      Set the BP Intended Use Date Time. This field specify the date/time of the placer intends to use the blood product that is being ordered.
      Parameters:
        `objbPIntendedUseDateTime` - Object of BP Intended Use Date Time.

    - #### addBPProcessingRequirements

          public void addBPProcessingRequirements(java.lang.String strIdentifier,
                                         java.lang.String strText,
                                         java.lang.String strNameOfCodingSystem,
                                         java.lang.String strAlternateIdentifier,
                                         java.lang.String strAlternateText,
                                         java.lang.String strNameOfAlternateCodingSystem,
                                         java.lang.String strCodingSystemVersionID,
                                         java.lang.String strAlternateCodingSystemVersionId,
                                         java.lang.String strOriginalText,
                                         java.lang.String strSecondAlternateIdentifier,
                                         java.lang.String strSecondAlternateText,
                                         java.lang.String strNameofSecondAlternateCodingSystem,
                                         java.lang.String strSecondAlternateCodingSystemVersionID,
                                         java.lang.String strCodingSystemOID,
                                         java.lang.String strValueSetOID,
                                         java.lang.String strValueSetVersionID,
                                         java.lang.String strAlternateCodingSystemOID,
                                         java.lang.String strAlternateValueSetOID,
                                         java.lang.String strAlternateValueSetVersionID,
                                         java.lang.String strSecondAlternateCodingSystemOID,
                                         java.lang.String strSecondAlternateValueSetOID,
                                         java.lang.String strSecondAlternateValueSetVersionID)

      Add the BP Processing Requirements. This field specify the additional information about the blood component class associated with the Universal Service ID.
      Parameters:
        `strIdentifier` - Specifies of characters (the code) that uniquely identifies the item being referenced.
        `strText` - Specifies The descriptive or textual name of the identifier, e.g., myocardial infarction.
        `strNameOfCodingSystem` - Identifies the coding scheme being used in the identifier component.
        `strAlternateIdentifier` - Specifies an alternate sequence of characters (the code) that uniquely identifies the item being referenced.
        `strAlternateText` - Specifies the descriptive or textual name of the alternate identifier. See usage note in section introduction.
        `strNameOfAlternateCodingSystem` - Identifies the coding scheme being used in the alternate identifier component.
        `strCodingSystemVersionID` - A sequence of characters that uniquely identifies a second alternate code.
        `strAlternateCodingSystemVersionId` - This component carries the version for the coding system identified by components 4-6.
        `strOriginalText` - The text as seen and/or selected by the user who entered the data.
        `strSecondAlternateIdentifier` - A sequence of characters that uniquely identifies a second alternate code.
        `strSecondAlternateText` - The descriptive or textual name of the alternate identifier.
        `strNameofSecondAlternateCodingSystem` - Identifies the coding scheme being used in the alternate identifier component.
        `strSecondAlternateCodingSystemVersionID` - This component carries the version for the coding system identified by components 10-12.
        `strCodingSystemOID` - This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.3.
        `strValueSetOID` - This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.1 is obtained.
        `strValueSetVersionID` - This component carries the version for the value set identified by CWE.15. The version is a date. The date is the date/time that the value set being used was published.
        `strAlternateCodingSystemOID` - This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.6.
        `strAlternateValueSetOID` - This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.4 is obtained.
        `strAlternateValueSetVersionID` - This component carries the version for the value set identified by CWE.18. The version is a date.
        `strSecondAlternateCodingSystemOID` - This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.12.
        `strSecondAlternateValueSetOID` - This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.10 is obtained.
        `strSecondAlternateValueSetVersionID` - This component carries the version for the value set identified by CWE.21. The version is a date.

    - #### addBPProcessingRequirements

          public void addBPProcessingRequirements(CWE objbPProcessingRequirements)

      Add the BP Processing Requirements. This field specify the additional information about the blood component class associated with the Universal Service ID.
      Parameters:
        `objbPProcessingRequirements` - Object of BP Processing Requirements.

    - #### setBPProcessingRequirements

          public void setBPProcessingRequirements(ISingleCollection<CWE> objbPProcessingRequirementsList)

      Set the BP Processing Requirements. This field specify the additional information about the blood component class associated with the Universal Service ID.
      Parameters:
        `objbPProcessingRequirementsList` - List of BP Processing Requirements.

    - #### setBPQuantity

          public void setBPQuantity(java.lang.String strQuantity)

      Set the BP Quantity. This field specify the number of blood products ordered.
      Parameters:
        `strQuantity` - This field contains the String Value of Quantity

    - #### setBPQuantity

          public void setBPQuantity(NM objbPQuantity)

      Set the BP Quantity. This field specify the number of blood products ordered.
      Parameters:
        `objbPQuantity` - Object of BP Quantity.

    - #### setBPRequestedDispenseDateTime

          public void setBPRequestedDispenseDateTime(java.lang.String strTime)

      Set the BP Requested Dispense Date Time. This field specify the date/time that the requested blood products must be ready to dispense.
      Parameters:
        `strTime` - Specifies a point in time using a 24-hour clock notation.

    - #### setBPRequestedDispenseDateTime

          public void setBPRequestedDispenseDateTime(DTM objbPRequestedDispenseDateTime)

      Set the BP Requested Dispense Date Time. This field specify the date/time that the requested blood products must be ready to dispense.
      Parameters:
        `objbPRequestedDispenseDateTime` - Object of BP Requested Dispense Date Time.

    - #### setBPRequestedDispenseToAddress

          public void setBPRequestedDispenseToAddress(SAD objStreetAddress,
                                             java.lang.String strOtherDesignation,
                                             java.lang.String strCity,
                                             java.lang.String strStateOrProvince,
                                             java.lang.String strZipOrPostalCode,
                                             java.lang.String strCountry,
                                             java.lang.String strAddressType,
                                             java.lang.String strOtherGeographicDesignation,
                                             CWE objCountyParishCode,
                                             CWE objCensusTract,
                                             java.lang.String strAddressRepresentationCode,
                                             DTM objEffectiveDate,
                                             DTM objExpirationDate,
                                             CWE objEXpirationReason,
                                             java.lang.String strTemporaryIndicator,
                                             java.lang.String strBadAddressIndicator,
                                             java.lang.String strAddressUsage,
                                             java.lang.String strAddressee,
                                             java.lang.String strComment,
                                             java.lang.String strPreferenceOrder,
                                             CWE objProtectionCode,
                                             EI objAddressIdentifier)

      Set the BP Requested Dispense To Address. This field specify the actual address of the location to which the blood component is to be dispensed.
      Parameters:
        `objStreetAddress` - Specifies the street address.
        `strOtherDesignation` - Specifies the Second line of address.
        `strCity` - The city, or district or place where the addressee is located.
        `strStateOrProvince` - Specifies the state or province where the addressee is located.
        `strZipOrPostalCode` - Specifies the zip or postal code where the addressee is located.
        `strCountry` - Specifies the country where the addressee is located.
        `strAddressType` - Specifies the kind or type of address.
        `strOtherGeographicDesignation` - Specifies any other geographic designation.
        `objCountyParishCode` - Specifies a code that represents the county in which the specified address resides.
        `objCensusTract` - Specifies a code that represents the census tract in which the specified address resides.
        `strAddressRepresentationCode` - Specifies representations of the same name/address Suggested values are I,A,P [Refer table 0465]
        `objEffectiveDate` - It is The first date, if known, on which the address is valid and active.
        `objExpirationDate` - It is The last date, if known, on which the address is valid and active.
        `objExpirationReason` - indicates why this address was marked as ended.
        `strTemporaryIndicator` - indicates whether address is considered temporary .
        `strBadAddressIndicator` - indicates whether it is possible to contact the owning entity.
        `strAddressUsage` - indicates how the address is intended to be used.
        `strAddressee` - indicates the name of the person whose address is intended to be used.
        `strComment` - indicated descriptive information
        `strPreferenceOrder` - preference order
        `objProtectionCode` - indicates that an address need to be protected
        `objAdressIdentifier` - indicates a unique identifier for address

    - #### setBPRequestedDispenseToAddress

          public void setBPRequestedDispenseToAddress(XAD objbPRequestedDispenseToAddress)

      Set the BP Requested Dispense To Address. This field specify the actual address of the location to which the blood component is to be dispensed.
      Parameters:
        `objbPRequestedDispenseToAddress` - object of BP Requested Dispense To Address.

    - #### setBPRequestedDispenseToLocation

          public void setBPRequestedDispenseToLocation(HD objPointOfCare,
                                              HD objRoom,
                                              HD objBed,
                                              HD objFacility,
                                              java.lang.String strLocationStatus,
                                              java.lang.String strPersonLocationType,
                                              java.lang.String strBuilding,
                                              java.lang.String strFloor,
                                              java.lang.String strLocationDescription,
                                              EI objComprehensiveLocationIdentifier,
                                              HD objAssigningAuthorityForLocation)

      Set the BP Requested Dispense To Location. This field specify the inpatient or outpatient location to which the blood component is to be dispensed.
      Parameters:
        `strPointOfCare` - Specifies the code for the point where patient care is administered.
        `strRoom` - Specifies the code for the patient's room.
        `strBed` - Specifies the code for the patient's bed.
        `objFacility` - Specifies to site interpretation but generally describes the highest level physical designation of an institution, medical center or enterprise.
        `strLocationStatus` - Specifies the code for the status or availability of the location.
        `strPersonLocationType` - Specifies the categorization of the person's location defined by facility, building, floor, point of care, room or bed.
        `strBuilding` - Specifies code for the building where the person is located.
        `strFloor` - Specifies the code for the floor where the person is located.
        `strLocationDescription` - Specifies describes the location in free text.
        `objComprehensiveLocationIdentifier` - Specifies represents the physical location as a whole without regard for the individual components.
        `objAssigningAuthorityForLocation` - Specifies the entity that creates the data for the individual physical location components.

    - #### setBPRequestedDispenseToLocation

          public void setBPRequestedDispenseToLocation(PL objbPRequestedDispenseToLocation)

      Set the BP Requested Dispense To Location. This field specify the inpatient or outpatient location to which the blood component is to be dispensed.
      Parameters:
        `objbPRequestedDispenseToLocation` - Object of BP Requested Dispense To Location.

    - #### setBPUnits

          public void setBPUnits(java.lang.String strIdentifier,
                        java.lang.String strText,
                        java.lang.String strNameOfCodingSystem,
                        java.lang.String strAlternateIdentifier,
                        java.lang.String strAlternateText,
                        java.lang.String strNameOfAlternateCodingSystem,
                        java.lang.String strCodingSystemVersionID,
                        java.lang.String strAlternateCodingSystemVersionId,
                        java.lang.String strOriginalText,
                        java.lang.String strSecondAlternateIdentifier,
                        java.lang.String strSecondAlternateText,
                        java.lang.String strNameofSecondAlternateCodingSystem,
                        java.lang.String strSecondAlternateCodingSystemVersionID,
                        java.lang.String strCodingSystemOID,
                        java.lang.String strValueSetOID,
                        java.lang.String strValueSetVersionID,
                        java.lang.String strAlternateCodingSystemOID,
                        java.lang.String strAlternateValueSetOID,
                        java.lang.String strAlternateValueSetVersionID,
                        java.lang.String strSecondAlternateCodingSystemOID,
                        java.lang.String strSecondAlternateValueSetOID,
                        java.lang.String strSecondAlternateValueSetVersionID)

      Set the BP Units. This field specify the units of measure for the blood product amount.
      Parameters:
        `strIdentifier` - Specifies of characters (the code) that uniquely identifies the item being referenced.
        `strText` - Specifies The descriptive or textual name of the identifier, e.g., myocardial infarction.
        `strNameOfCodingSystem` - Identifies the coding scheme being used in the identifier component.
        `strAlternateIdentifier` - Specifies an alternate sequence of characters (the code) that uniquely identifies the item being referenced.
        `strAlternateText` - Specifies the descriptive or textual name of the alternate identifier. See usage note in section introduction.
        `strNameOfAlternateCodingSystem` - Identifies the coding scheme being used in the alternate identifier component.
        `strCodingSystemVersionID` - A sequence of characters that uniquely identifies a second alternate code.
        `strAlternateCodingSystemVersionId` - This component carries the version for the coding system identified by components 4-6.
        `strOriginalText` - The text as seen and/or selected by the user who entered the data.
        `strSecondAlternateIdentifier` - A sequence of characters that uniquely identifies a second alternate code.
        `strSecondAlternateText` - The descriptive or textual name of the alternate identifier.
        `strNameofSecondAlternateCodingSystem` - Identifies the coding scheme being used in the alternate identifier component.
        `strSecondAlternateCodingSystemVersionID` - This component carries the version for the coding system identified by components 10-12.
        `strCodingSystemOID` - This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.3.
        `strValueSetOID` - This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.1 is obtained.
        `strValueSetVersionID` - This component carries the version for the value set identified by CWE.15. The version is a date. The date is the date/time that the value set being used was published.
        `strAlternateCodingSystemOID` - This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.6.
        `strAlternateValueSetOID` - This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.4 is obtained.
        `strAlternateValueSetVersionID` - This component carries the version for the value set identified by CWE.18. The version is a date.
        `strSecondAlternateCodingSystemOID` - This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.12.
        `strSecondAlternateValueSetOID` - This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.10 is obtained.
        `strSecondAlternateValueSetVersionID` - This component carries the version for the value set identified by CWE.21. The version is a date.

    - #### setBPUnits

          public void setBPUnits(CWE objbPUnits)

      Set the BP Units. This field specify the units of measure for the blood product amount.
      Parameters:
        `objbPUnits` - Object of BP Units.

    - #### setBPUniversalServiceIdentifier

          public void setBPUniversalServiceIdentifier(java.lang.String strIdentifier,
                                             java.lang.String strText,
                                             java.lang.String strNameOfCodingSystem,
                                             java.lang.String strAlternateIdentifier,
                                             java.lang.String strAlternateText,
                                             java.lang.String strNameOfAlternateCodingSystem,
                                             java.lang.String strCodingSystemVersionID,
                                             java.lang.String strAlternateCodingSystemVersionId,
                                             java.lang.String strOriginalText,
                                             java.lang.String strSecondAlternateIdentifier,
                                             java.lang.String strSecondAlternateText,
                                             java.lang.String strNameofSecondAlternateCodingSystem,
                                             java.lang.String strSecondAlternateCodingSystemVersionID,
                                             java.lang.String strCodingSystemOID,
                                             java.lang.String strValueSetOID,
                                             java.lang.String strValueSetVersionID,
                                             java.lang.String strAlternateCodingSystemOID,
                                             java.lang.String strAlternateValueSetOID,
                                             java.lang.String strAlternateValueSetVersionID,
                                             java.lang.String strSecondAlternateCodingSystemOID,
                                             java.lang.String strSecondAlternateValueSetOID,
                                             java.lang.String strSecondAlternateValueSetVersionID)

      Set the BP Universal Service Identifier. This field specify the identifier code for the requested blood product.
      Parameters:
        `strIdentifier` - Specifies of characters (the code) that uniquely identifies the item being referenced.
        `strText` - Specifies The descriptive or textual name of the identifier, e.g., myocardial infarction.
        `strNameOfCodingSystem` - Identifies the coding scheme being used in the identifier component.
        `strAlternateIdentifier` - Specifies an alternate sequence of characters (the code) that uniquely identifies the item being referenced.
        `strAlternateText` - Specifies the descriptive or textual name of the alternate identifier. See usage note in section introduction.
        `strNameOfAlternateCodingSystem` - Identifies the coding scheme being used in the alternate identifier component.
        `strCodingSystemVersionID` - A sequence of characters that uniquely identifies a second alternate code.
        `strAlternateCodingSystemVersionId` - This component carries the version for the coding system identified by components 4-6.
        `strOriginalText` - The text as seen and/or selected by the user who entered the data.
        `strSecondAlternateIdentifier` - A sequence of characters that uniquely identifies a second alternate code.
        `strSecondAlternateText` - The descriptive or textual name of the alternate identifier.
        `strNameofSecondAlternateCodingSystem` - Identifies the coding scheme being used in the alternate identifier component.
        `strSecondAlternateCodingSystemVersionID` - This component carries the version for the coding system identified by components 10-12.
        `strCodingSystemOID` - This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.3.
        `strValueSetOID` - This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.1 is obtained.
        `strValueSetVersionID` - This component carries the version for the value set identified by CWE.15. The version is a date. The date is the date/time that the value set being used was published.
        `strAlternateCodingSystemOID` - This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.6.
        `strAlternateValueSetOID` - This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.4 is obtained.
        `strAlternateValueSetVersionID` - This component carries the version for the value set identified by CWE.18. The version is a date.
        `strSecondAlternateCodingSystemOID` - This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.12.
        `strSecondAlternateValueSetOID` - This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.10 is obtained.
        `strSecondAlternateValueSetVersionID` - This component carries the version for the value set identified by CWE.21. The version is a date.

    - #### setBPUniversalServiceIdentifier

          public void setBPUniversalServiceIdentifier(CWE objbPUniversalServiceID)

      Set the BP Universal Service ID. This field specify the identifier code for the requested blood product.
      Parameters:
        `objbPUniversalServiceID` - Object of BP Universal Service Identifier.

    - #### setSetID_BPO

          public void setSetID_BPO(java.lang.String strSetID_BPO)

      Set the Set ID BPO. This field specify the sequence number for the BPO segment within the message.
      Parameters:
        `strSetID_BPO` - This field contains the String Value of Set ID - BPO

    - #### setSetID_BPO

          public void setSetID_BPO(SI objsetID_BPO)

      Set the Set ID BPO. This field specify the sequence number for the BPO segment within the message.
      Parameters:
        `objsetID_BPO` - Object of Set ID BPO.

    - #### validate

          public boolean validate()
                           throws InvalidSegmentException

      Validates HL7 Message objects . Validate method checks for validation each and every segments in side the Message object against specified message Structure. Validation checks include optionality of segment or group. It also verifies the number of times segment or group is repeated in message. e.g {PSH} while parsing PSH segment validate method will check for its mandatory presence. [PSH] in this case validate will throw exception if one tries to enter more than one PSH segment.
      Specified by:
        `validate` in interface `ISegment`
      Overrides:
        `validate` in class `Segment`
      Returns:
        boolean - true or false.
      Throws:
        `InvalidSegmentException` - Thrown when Segment Validation Fails.