public string discontinueMed(string orderIen, string duz, string reasonIen)
{
if (String.IsNullOrEmpty(orderIen))
{
return "No order ID";
}
if (String.IsNullOrEmpty(duz))
{
return "No user ID";
}
if (String.IsNullOrEmpty(reasonIen))
{
return "No reason ID";
}
VistaUserDao userDao = new VistaUserDao(cxn);
if (!userDao.hasPermission(duz, new SecurityKey("", "PROVIDER")))
{
return "User does not have PROVIDER key";
}
VistaOrdersDao orderDao = new VistaOrdersDao(cxn);
Order order = orderDao.getOrder(orderIen);
if (order == null)
{
return "No such order";
}
string msg = orderDao.validateOrderActionNature(orderIen, "DC", duz, "");
if (msg != "OK")
{
return msg;
}
msg = orderDao.getComplexOrderMsg(orderIen);
if (msg != "")
{
return msg;
}
if (!orderDao.lockOrdersForPatient(cxn.Pid))
{
return "Unable to lock orders for patient";
}
msg = orderDao.lockOrder(orderIen);
if (msg != "OK")
{
orderDao.unlockOrdersForPatient();
return msg;
}
// discontinue the order
// unlock ?
return null;
}