Browse Source

LIS结果导入

bjmzak
DESKTOP-G961P6V\Zhh 2 years ago
parent
commit
21dfad4fc8
  1. 10
      ThirdPlugIns/Shentun.Peis.PlugIns.Gem/ChargeRequestPlugInsGem.cs
  2. 2
      src/Shentun.ColumnReferencePlugIns/ChargeRequestAsbitemForPlugIns.cs
  3. 32
      src/Shentun.ColumnReferencePlugIns/ChargeRequestPlugInsBase.cs
  4. 20
      src/Shentun.Peis.Application/ImportLisResults/ImportLisResultAppService.cs

10
ThirdPlugIns/Shentun.Peis.PlugIns.Gem/ChargeRequestPlugInsGem.cs

@ -180,7 +180,7 @@ namespace Shentun.Peis.PlugIns.Gem
}
}
await SetAppChargeRequestFlagAsync(input.ChargeRequestId, chargeRequestForPlugIns.ConcurrencyStamp,ChargeRequestFlag.AlreadyCancelCharge);
await SetAppChargeRequestFlagAsync(chargeRequestForPlugIns, ChargeRequestFlag.AlreadyCancelCharge);
return new ChargeRequestPlugInsOut();
}
@ -225,7 +225,7 @@ namespace Shentun.Peis.PlugIns.Gem
}
}
await SetAppChargeRequestFlagAsync(input.ChargeRequestId, chargeRequestForPlugIns.ConcurrencyStamp,ChargeRequestFlag.RefundRequest);
await SetAppChargeRequestFlagAsync(chargeRequestForPlugIns, ChargeRequestFlag.RefundRequest);
return new ChargeRequestPlugInsOut();
}
public override Task DoWork()
@ -267,18 +267,18 @@ namespace Shentun.Peis.PlugIns.Gem
if (payStatus == "1" && chargeRequest.ChargeRequestFlag != ChargeRequestFlag.RefundRequest)
{
charRequstFlag = ChargeRequestFlag.AlreadyCharge;
SetAppChargeRequestFlagAsync(chargeRequest.ChargeRequestId, chargeRequest.ConcurrencyStamp, charRequstFlag);
SetAppChargeRequestFlagAsync(chargeRequest, charRequstFlag);
}
else if (payStatus == "2")
{
charRequstFlag = ChargeRequestFlag.AlreadyCancelCharge;
SetAppChargeRequestFlagAsync(chargeRequest.ChargeRequestId, chargeRequest.ConcurrencyStamp,charRequstFlag);
SetAppChargeRequestFlagAsync(chargeRequest, charRequstFlag);
}
else if (payStatus == "3")
{
charRequstFlag = ChargeRequestFlag.AlreadyRefund;
SetAppChargeRequestFlagAsync(chargeRequest.ChargeRequestId, chargeRequest.ConcurrencyStamp,charRequstFlag);
SetAppChargeRequestFlagAsync(chargeRequest, charRequstFlag);
}
else
{

2
src/Shentun.ColumnReferencePlugIns/ChargeRequestAsbitemForPlugIns.cs

@ -12,5 +12,7 @@ namespace Shentun.Peis.PlugIns
public string AsbitemName { get; set; } = string.Empty;
public string ThirdAsbitemCode { get; set; } = string.Empty;
public decimal Charges { get; set; }
public string ConcurrencyStamp { get; set; }
}
}

32
src/Shentun.ColumnReferencePlugIns/ChargeRequestPlugInsBase.cs

@ -89,7 +89,8 @@ where patient.id = patient_register.patient_id and
sql = @"
SELECT register_check_asbitem.asbitem_id,
asbitem.display_name as asbitem_name,
register_check_asbitem.amount * register_check_asbitem.charge_price as charges
register_check_asbitem.amount * register_check_asbitem.charge_price as charges,
register_check_asbitem.concurrency_stamp
from register_check
JOIN register_check_asbitem on register_check.id = register_check_asbitem.register_check_id
JOIN charge_request on register_check_asbitem.charge_request_id = charge_request.id
@ -155,35 +156,50 @@ where patient.id = patient_register.patient_id and
// }
//}
public async Task SetAppChargeRequestFlagAsync(Guid chargeRequestId, string concurrencyStamp, char chargeRequestFlag)
public async Task SetAppChargeRequestFlagAsync(ChargeRequestForPlugIns chargeRequestForPlugIns,
char chargeRequestFlag)
{
using (DbConnection conn = new NpgsqlConnection(AppConnctionStr))
{
//加ConcurrencyStamp,以防止并发
string sql;
sql = @" update charge_request set charge_request_flag =" + chargeRequestFlag +
@" where id = @ChargeRequestId and concurrency_stamp = @ConcurrencyStamp
";
conn.Execute(sql,
new { ChargeRequestId = chargeRequestId,
ConcurrencyStamp = concurrencyStamp
new { ChargeRequestId = chargeRequestForPlugIns.ChargeRequestId,
ConcurrencyStamp = chargeRequestForPlugIns.ConcurrencyStamp
});
foreach(var chargeRequestAsbitem in chargeRequestForPlugIns.Asbitems)
{
if (chargeRequestFlag == ChargeRequestFlag.AlreadyCharge)
{
sql = @" update register_check_asbitem set is_charge = 'Y' where charge_request_id = @ChargeRequestId
sql = @" update register_check_asbitem set is_charge = 'Y'
where charge_request_id = @ChargeRequestId and concurrency_stamp = @ConcurrencyStamp
";
conn.Execute(sql,
new { ChargeRequestId = chargeRequestId });
new { ChargeRequestId = chargeRequestForPlugIns.ChargeRequestId,
ConcurrencyStamp = chargeRequestAsbitem.ConcurrencyStamp
});
}
else if (chargeRequestFlag == ChargeRequestFlag.AlreadyRefund)
{
sql = @" update register_check_asbitem set is_charge = 'N' where charge_request_id = @ChargeRequestId
sql = @" update register_check_asbitem set is_charge = 'N'
where charge_request_id = @ChargeRequestId and concurrency_stamp = @ConcurrencyStamp
";
conn.Execute(sql,
new { ChargeRequestId = chargeRequestId });
new
{
ChargeRequestId = chargeRequestForPlugIns.ChargeRequestId,
ConcurrencyStamp = chargeRequestAsbitem.ConcurrencyStamp
});
}
}
}
}

20
src/Shentun.Peis.Application/ImportLisResults/ImportLisResultAppService.cs

@ -262,7 +262,7 @@ namespace Shentun.Peis.ImportLisResults
if (_referenceRangeManager.IsNumberReferenceRange(referenceRangeValue))
{
item.ReferenceRangeTypeFlag = ItemReferenceRangeTypeFlag.Number;
await _itemRepository.UpdateAsync(item, true);
await _itemRepository.UpdateAsync(item);
referenceRange = referenceRanges.Where(o => o.ForSexId == sexId
&& age >= o.AgeLowerLimit && age <= o.AgeUpperLimit
@ -271,7 +271,7 @@ namespace Shentun.Peis.ImportLisResults
{
referenceRange.ReferenceRangeTypeFlag = ItemReferenceRangeTypeFlag.Number;
referenceRange.ReferenceRangeValue = referenceRangeValue;
await _referenceRangeRepository.UpdateAsync(referenceRange, true);
await _referenceRangeRepository.UpdateAsync(referenceRange);
return;
}
@ -282,7 +282,7 @@ namespace Shentun.Peis.ImportLisResults
{
referenceRange.ReferenceRangeTypeFlag = ItemReferenceRangeTypeFlag.Number;
referenceRange.ReferenceRangeValue = referenceRangeValue;
await _referenceRangeRepository.UpdateAsync(referenceRange, true);
await _referenceRangeRepository.UpdateAsync(referenceRange);
return;
}
referenceRange = new ReferenceRange()
@ -295,18 +295,19 @@ namespace Shentun.Peis.ImportLisResults
ForSexId = ForSexFlag.All
};
referenceRange = _referenceRangeManager.Create(referenceRange);
await _referenceRangeRepository.InsertAsync(referenceRange, true);
await _referenceRangeRepository.InsertAsync(referenceRange);
referenceRanges.Add(referenceRange);
return;
}
item.ReferenceRangeTypeFlag = ItemReferenceRangeTypeFlag.Character;
await _itemRepository.UpdateAsync(item, true);
await _itemRepository.UpdateAsync(item);
referenceRange = referenceRanges.Where(o => o.ReferenceRangeTypeFlag == ItemReferenceRangeTypeFlag.Character).FirstOrDefault();
if (referenceRange != null)
{
referenceRange.ReferenceRangeTypeFlag = ItemReferenceRangeTypeFlag.Character;
referenceRange.ReferenceRangeValue = referenceRangeValue;
await _referenceRangeRepository.UpdateAsync(referenceRange, true);
await _referenceRangeRepository.UpdateAsync(referenceRange);
return;
}
@ -320,7 +321,8 @@ namespace Shentun.Peis.ImportLisResults
ForSexId = ForSexFlag.All
};
referenceRange = _referenceRangeManager.Create(referenceRange);
await _referenceRangeRepository.InsertAsync(referenceRange, true);
await _referenceRangeRepository.InsertAsync(referenceRange);
referenceRanges.Add(referenceRange);
return;
}
@ -340,7 +342,7 @@ namespace Shentun.Peis.ImportLisResults
return;
}
item.UnitId = unit.Id;
await _itemRepository.UpdateAsync(item, true);
await _itemRepository.UpdateAsync(item);
return;
}
unit = new Unit()
@ -349,7 +351,7 @@ namespace Shentun.Peis.ImportLisResults
};
unit = await _unitManager.CreateAsync(unit);
await _unitRepository.InsertAsync(unit, true);
await _unitRepository.InsertAsync(unit);
_units.Add(unit);
}
}

Loading…
Cancel
Save