예제 #1
0
        public virtual PrescriptionItem GetById(string code, PrescriptionItemType prescriptionItemType)
        {
            var criterio = Session.CreateCriteria<PrescriptionItem>();
            criterio.Add(Restrictions.Eq("Id",Convert.ToInt16( code)));
            // criterio.Add(Restrictions.Eq("code", code));
            // criterio.Add(Restrictions.Eq("PrescriptionItemType",(short)prescriptionItemType));

            var itemDePrescricao = criterio.UniqueResult<PrescriptionItem>();

            Assertion.NotNull(itemDePrescricao, "Item de prescrição inválido.").Validate();

            return itemDePrescricao;
        }
예제 #2
0
        public virtual void SavePrescriptionForService(int idSummary, TypePrescription typePrescriptionEnum, short itemPrescriptionID, string itemPrescriptionCode, PrescriptionItemType prescriptionItemType, string presentation,
            short presentationType, string dose, short dosage, short way, string place, short frequency, short frequencyCase, int duration
            , int PrescriptionHighMonth, int PrescriptionHighYear, int PrescriptionHighDay, int PrescriptionHighHour, int PrescriptionHighMinute,
            int quantity, string observation)
        {
            #region Preconditions
            Assertion.GreaterThan(idSummary, 0, "Prontuário inválido, favor contactar o suporte.").Validate();
            Assertion.GreaterThan(duration, 0, "Duração não informada.").Validate();

            if (typePrescriptionEnum == TypePrescription.Medicamentos)
            {
                Assertion.IsFalse(string.IsNullOrEmpty(presentation), "Apresentação não informada.").Validate();
                Assertion.GreaterThan((int)presentationType, 0, "Tipo de apresentação não informado.").Validate();
                Assertion.IsFalse(string.IsNullOrEmpty(dose), "Dose não informada.").Validate();
                Assertion.GreaterThan((int)dosage, 0, "Dosagem não informada.").Validate();
                Assertion.GreaterThan((int)way, 0, "Via informada.").Validate();
                Assertion.GreaterThan((int)frequency, 0, "Frequencia não informada.").Validate();
            }

            #endregion

            var summary = GetBy(idSummary);

            PrescriptionItem prescriptionItem;
            Assertion.GreaterThan(itemPrescriptionCode, string.Empty, "Item de prescrição não informado.").Validate();
            _itemPrescriptionRepository = new ItemPrescriptionRepository();

            prescriptionItem = _itemPrescriptionRepository.GetById(itemPrescriptionCode, prescriptionItemType);

            summary.CreatePrescriptionForService(prescriptionItem, typePrescriptionEnum, presentation, presentationType, dose, dosage, way, place, frequency
                , frequencyCase, duration, PrescriptionHighMonth, PrescriptionHighYear, PrescriptionHighDay, PrescriptionHighHour, PrescriptionHighMinute
                , quantity, observation);

            Summaries.Save(summary);
        }